平台:Android M 6.0.1
一、问题现象
1、进入Settings-Apps-Google App,点击disable,按电源键锁屏,再次按电源键,锁屏界面左下角依然是Voice的图标,向上滑动左下角的voice图标,白屏一段时间,然后回到原始界面。。
2、再次进入Settings-Apps-Google App,点击enable,关屏,开屏,向上滑动左下角的voice图标,白屏一段时间,然后回到原始界面。
3、正常情况下,滑动voice图标,会跳转到voice search应用,进行语音搜索。
二、问题分析
左下角的图标,是由updateLeftAffordanceIcon函数控制
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
mLeftIsVoiceAssist为true时,显示voice图标,为false时,显示call图标,经过打log分析,发现当disable Google App时,mLeftIsVoiceAssist的值始终为true,所以图标才没有更新,通过暗码###666#把persist.sys.google.enabled设置为0时,即禁用所有Google应用,通过adb shell getprop persist.sys.google.enabled获取到的值为0,此时mLeftIsVoiceAssist更新为false,故得出结果如果只是在Settings中单独禁用Google App那一个,对persist.sys.google.enabled的值是没有影响的,而Google又没有单独对Google app进行监听,但是Voice search依赖Google App,所以当单独禁用Google App时,图标不变,但是滑动的时候因为voice search已经被禁用,故无法启动,白屏了一段时间。
至于白屏的详细原因,经log分析得知,在手机开机后,会从frameworks/base/s