2016-01-18 106 views
3

我已經創建了一個Android應用程序,該應用程序應該在啓動後啓動服務。 它在Nexus 5手機上工作得很好,但我無法使它在華爲平板電腦(Mediapad X2)上工作。我正在使用Android 5.0/API 21.BOOT_COMPLETED沒有收到

根據指南,清單具有適當的權限/意圖。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<uses-permission android:name="android.permission.WAKE_LOCK"/> 

    <receiver 
     android:name=".BootBroadcast" 
     android:enabled="true" 
     android:exported="true" 
     android:label="BootReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <action android:name="android.intent.action.QUICKBOOT_POWERON"/> 
     </intent-filter> 
    </receiver> 

我SO搜索類似問題(BOOT_COMPLETED not working Android),並添加了QUICKBOOT_POWERON意圖,還有WAKE_LOCK權限,但一切都沒有改變。

廣播接收器剛剛開始服務

public class BootBroadcast extends BroadcastReceiver { 

private static final String TAG = "GrandUnion-Boot"; 

@Override 
public void onReceive(Context context, Intent intent) { 

    Log.e(TAG, "Boot_Completed RECEIVED"); 
    try{ 
     context.startService(new Intent(context,MyService.class)); 
     Log.i(TAG, "Boot Completed - start service"); 
    }catch(Exception e){ 
     Log.e(TAG,e.toString()); 
    } 

} 
} 
+0

可能重複與http://stackoverflow.com/questions/24882861/android-intent-action-boot-completed-intent-is-not-received-at-restart-or-reb – KostasC

+0

我不認爲它因爲OP說他還加了Quickboot ..... – Opiatefuchs

+0

你有沒有嘗試在'intent-filter'中加入''? – Knossos

回答

1

長期研究我發現後,一些設備有自己的啓動管理器。而華爲MediaPad的其中之一,所以:

  1. 轉到設備的設置
  2. 查找啓動管理器
  3. 允許應用程序啓動。
+0

嗨,感謝您提供此信息,但該設備沒有啓動管理器。我有一個「電話管理器」,但它沒有啓動/啓動選項。 – Konstantinos

+0

@Konstantinos我的測試設備是華爲MediaPad X1。問題是完全一樣的。所以你的設置可能不同。有沒有提供任何選項,當你的安裝應用程序直接通過apk?在這種情況下,MediaPad1顯示允許自動啓動的選項。 –

+0

我有10個華爲mediapad 2. 10個作品中有7個。但其他3不。怎麼可能 ? – MrG

0

如果您的設備沒有啓動/啓動管理器,請嘗試檢查應用程序管理器。在聯想的VibeUI上,應用程序管理器有一個選項「限制啓動」,啓用時防止應用程序接收BOOT_COMPLETED意圖。