Intent BOOT_COMPLETED无法在华为设备上运行

时间:2017-05-11 11:20:30

标签: android android-intent android-service bootcompleted huawei

我想在Android应用中收听APN更改。

因此我在android.intent.action.BOOT_COMPLETED开始提供服务。 此服务启动一个ContentObserver,用于侦听对其的更改 content://telephony/carriers/preferapn

我在几个不同的设备上测试了这个设置(例如LG Spirit with Android 5.0,Samsung A3 with 6.0,Emulator Nexus5 with 7.0和Huawei P9 Lite with 7.0)

在华为电话上,我的服务onCreate未被呼叫。

我的另一种方法是将android.intent.action.ANY_DATA_STATEBroadcastReceiver结合使用,并在Manifest中注册,并且无法在此手机上使用。

我的清单的相关部分:

<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>

2 个答案:

答案 0 :(得分:7)

为了进行更新,华为更改了Android 9版本中的菜单路径。

在Huawei Mate 10 Pro上进入此菜单的方式:
设置->电池->应用启动->禁用应用的自动管理。

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

答案 1 :(得分:1)

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

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

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