Android GO 版本锁屏声音无效问题

问题描述

Android go版本 在设置中打开锁屏音开关,息屏灭屏还是无声音

排查

vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\keyguard\KeyguardViewMediator.java

java 复制代码
private void setupLocked() {
        
        ...
        
        String soundPath = Settings.Global.getString(cr, Settings.Global.LOCK_SOUND);
		Log.d("TAG", "playSound soundPath = " + soundPath);
        if (soundPath != null) {
            mLockSoundId = mLockSounds.load(soundPath, 1);
        }
        if (soundPath == null || mLockSoundId == 0) {
            Log.w(TAG, "failed to load lock sound from " + soundPath);
        }
        soundPath = Settings.Global.getString(cr, Settings.Global.UNLOCK_SOUND);
        if (soundPath != null) {
            mUnlockSoundId = mLockSounds.load(soundPath, 1);
        }
        if (soundPath == null || mUnlockSoundId == 0) {
            Log.w(TAG, "failed to load unlock sound from " + soundPath);
        }
        soundPath = Settings.Global.getString(cr, Settings.Global.TRUSTED_SOUND);
        if (soundPath != null) {
            mTrustedSoundId = mLockSounds.load(soundPath, 1);
        }
        if (soundPath == null || mTrustedSoundId == 0) {
            Log.w(TAG, "failed to load trusted sound from " + soundPath);
        }

        ...
        
    }

追踪到锁屏声音相关类,获取锁屏音资源路径处打log,发现soundPath 是空的,说明没有获取到锁屏音资源文件

相关系统音频资源 通常会在编译时拷贝进product/media/audio/ui/ 目录

adb shell 进入 product/media/audio/ui/ 目录下,发现没有Lock.ogg文件,说明没有拷贝,mk文件没有执行拷贝动作

进入frameworks\base\data\sounds 路径下 查看相关资源文件和mk文件

AudioPackageGo.mk文件是GO版本编译到的mk文件,进入查看

确实没有复制Lock.ogg 所以在这里加上

java 复制代码
	$(LOCAL_PATH)/effects/Undock.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Undock.ogg \
	$(LOCAL_PATH)/effects/Lock.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Lock.ogg \

重编过后,设备目录中就会拷贝有锁屏和解锁音。

原因分析

锁屏解锁音 是在锁屏和解锁时播放一段音频,在GO版本低配机器上,去掉了这部分来优化系统流畅度,所以相关资源没有拷贝过去。

相关推荐
xiao--xin9 分钟前
Java定时任务实现方案(一)——Timer
java·面试题·八股·定时任务·timer
MrZhangBaby22 分钟前
SQL-leetcode—1158. 市场分析 I
java·sql·leetcode
一只淡水鱼6636 分钟前
【spring原理】Bean的作用域与生命周期
java·spring boot·spring原理
五味香42 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
jerry-891 小时前
Centos类型服务器等保测评整/etc/pam.d/system-auth
java·前端·github
Jerry Lau1 小时前
大模型-本地化部署调用--基于ollama+openWebUI+springBoot
java·spring boot·后端·llama
小白的一叶扁舟1 小时前
Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
java·spring boot·kafka·rabbitmq·rocketmq
幼儿园老大*1 小时前
【系统架构】如何设计一个秒杀系统?
java·经验分享·后端·微服务·系统架构
言之。1 小时前
【Java】面试中遇到的两个排序
java·面试·排序算法
计算机-秋大田1 小时前
基于SSM的家庭记账本小程序设计与实现(LW+源码+讲解)
java·前端·后端·微信小程序·小程序·课程设计