我想在我的 Android 应用程序中收听 APN 更改。
因此我启动了一项服务android.intent.action.BOOT_COMPLETED
。
该服务启动一个 ContentObserver 来监听更改content://telephony/carriers/preferapn
.
我在几种不同的设备上测试了此设置(例如,配备 Android 5.0 的 LG Spirit、配备 6.0 的三星 A3、配备 7.0 的模拟器 Nexus5 和配备 7.0 的华为 P9 Lite)
在华为手机上onCreate
我的服务没有被调用。
我的另一种方法是android.intent.action.ANY_DATA_STATE
结合一个BroadcastReceiver
在清单中注册的功能在这款手机上也不起作用。
我的清单的相关部分:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
...
<receiver android:name=".ConnectivityChangeReceiver">
<intent-filter>
<action android:name="android.intent.action.ANY_DATA_STATE" />
</intent-filter>
</receiver>
<receiver android:name=".APNChangedServiceStarter" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
<service android:name=".APNChangedService"></service>
只是为了更新,华为改变了Android 9版本中的菜单路径。
在华为Mate 10 pro上,进入该菜单的方法:
设置 -> 电池 -> 应用程序启动 -> 禁用应用程序的自动管理。
将出现一个弹出窗口,询问您想要允许什么(默认情况下均为 true)。确保第一个自动启动已启用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)