我想在我的 Android 应用程序中收听 APN 更改。
因此我在android.intent.action.BOOT_COMPLETED
. 该服务启动一个 ContentObserver 来监听对
content://telephony/carriers/preferapn
.
我在几个不同的设备上测试了这个设置(例如,带有 Android 5.0 的 LG Spirit、带有 6.0 的三星 A3、带有 7.0 的 Emulator Nexus5 和带有 7.0 的华为 P9 Lite)
在我的服务的华为手机onCreate
上没有被调用。
我的另一种方法与android.intent.action.ANY_DATA_STATE
在清单中注册的 a 相结合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>