[英]Boot Reciever Working on Emulator but not android actual phone
在啟動完成后,我正在啟動在模擬器上完美運行的服務,但是當我在android手機上運行時,廣播接收器無法啟動服務。 Infact應用程序甚至沒有收到設備啟動完成的廣播。
這是我的清單文件:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_logo"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver
android:name="com.darkrai.smsbasedcontroller.BootReciever"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
</application>
這是我的廣播接收器課程。
public class BootReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, UpdateService.class));
Log.d("Boot", "Boot Reciever");
}
某些設備(主要是HTC)具有稱為快速重啟的功能,不會觸發BOOT_COMPLETED
。 相反,它們觸發QUICKBOOT_POWERON
。
因此,還要添加此權限<action android:name="android.intent.action.QUICKBOOT_POWERON" />
。 即
<receiver
android:name="com.darkrai.smsbasedcontroller.BootReciever"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
您的BroadcastReceiver
(對於任何操作)將不會接收任何廣播,除非設備上的某些內容使用顯式的Intent
啟動您的組件之一。 通常,這以用戶在啟動器中點擊您的Activity
的形式出現。
因此,添加一個LAUNCHER
Activity
,點擊它,然后您將收到廣播,直到:
我遇到了同樣的問題,而不是您的代碼問題或其他問題。 由於miui,我正面臨這個問題。 Miui的每個應用程序均禁用了自動啟動權限。 如果您還使用miui設備,則可以執行以下選項。當您允許自動啟動許可時,您的廣播接收器將收到ACTION_BOOT_COMPLETED。 您可以通過設置>已安裝的應用程序>您的應用程序>自動啟動來允許自動啟動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.