插入无线鼠标Android应用重启问题
背景
- Platform: RK3399
- OS: Android7.1.2
- Kernel: v4.4.103
问题
在运行我们自己的APK时,插入某些USB的无线鼠标,APK会“重启”,重新走一次生命周期。
分析与解决
开始觉得很奇怪,为啥有的鼠标可以有的却不行,还以为是牌子问题。。。
后面发现插入有问题的USB无线收发器,会生成2个设备,一个鼠标和一个键盘。没错,这是键鼠套装一体的无线收发器,正是这个键盘导致出现了现在的这个现象,而有些无线鼠标的无线收发器不是键鼠套装,所有只会有1个鼠标设备,所以插上去没有问题。
在Activity
中,如果不设置android:configChanges
属性,当相应属性发生改变时,APK会重新调用执行各个生命周期
所以解决办法就是设置configChanges
:
在APK工程的AndroidManifest.xml
中配置configChanges
,具体是在<activity>
中添加android:configChanges
android:configChanges="keyboard|keyboardHidden"
但配置完configChanges
后发现系统的虚拟键盘弹不出,
解决办法是在设置页打开键盘支持:
- 可手动打开:设置->语言和输入法->实体键盘->显示虚拟键盘(打开)
- 修改系统默认参数,系统默认打开, 改为true:
/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
:<!-- Default for Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD --> <bool name="def_show_ime_with_hard_keyboard">false</bool>
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论