我想在我的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的Huawei 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 - 意图BOOT_COMPLETED在华为设备上不起作用-LMLPHP

转到“设置”>“全部”,然后选择“启动管理器”。
该程序用于管理Android手机上的启动应用程序。
华为手机启动后,允许或禁止应用自动运行。

08-18 08:19
查看更多