6

我想在我的 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>
4

2 回答 2

10

只是为了更新,华为在Android 9版本中更改了菜单路径。

在华为 Mate 10 pro 上,进入此菜单的方法是:
设置 -> 电池 -> 应用启动 -> 禁用应用的自动管理。

将出现一个弹出窗口,询问您要允许的内容(默认情况下全部为真)。确保第一个,自动启动已启用

于 2020-02-01T17:34:28.387 回答
5

华为手机内置启动管理器,可能是该应用尚未启用。

来自 https://www.isunshare.com/android/how-to-control-startup-apps-on-huawei-android.html

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

于 2017-05-11T11:36:33.040 回答