2017-06-09 3 views
0

Meine Implementierung von BootBroadcastReceiverAndroid Boot abgeschlossen Empfänger wird nicht beim Systemneustart ausgelöst?

Permission taken in manifest :<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

Intent-Filter in Manifest für BootBroadcastReceiver:

<receiver android:name=".receivers.BootBroadcastReceiver" android:enabled="true" android:exported="true"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
       <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
       <action android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE"/> 
      </intent-filter> 
     </receiver> 

Die zusätzlichen Maßnahmen sind das Ergebnis von einigen Online lesen Threads.

Im Folgenden finden Sie Implementierungsklasse:

public class BootBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.d(TAG, "Application boot event"); 
     Toast.makeText(context, "Boot completed", Toast.LENGTH_SHORT).show(); 
    } 
} 

Aber irgendwie beim Neustart oder Einschalten Ich bin nicht in der Lage dieses Boot zu bekommen komplette ich den Toast ebenfalls hinzugefügt. Kein Toast gezeigt.

Auch einige Leute haben vorgeschlagen, die Anwendung nur auf dem internen Speicher zu installieren, da der Boot-Complete-Broadcast nicht an Apps auf externem Speicher zugestellt wird. Durch Setzen der Flagge im Manifest android:installLocation="internalOnly" habe ich das auch gemacht, aber nicht für mich gearbeitet. Was könnte falsch sein?

Geräte zum Testen verwendet:

Moto E3 power (Android 6.0), Lenovo A6020a40 (Android 5.1.1) 
+1

definieren Hève Sie 'hinzugefügt 'auf Ihre AndroidManifest.xml? –

+0

Welche Art von Android verwenden Sie? Abhängig von einigen benutzerdefinierten Roms gibt es mehr Absichtsaktionen, die Sie möglicherweise berücksichtigen müssen. htc schnell boot com.htc.intent.action.QUICKBOOT_POWERON – JacksOnF1re

+0

@ JacksOnF1re bitte haben Sie auf die aktualisierte Frage – pcj

Antwort

0

Verwendung dieser Code

public class BootBroadcastReceiver extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { 
      Log.d("startuptest", "StartUpBootReceiver BOOT_COMPLETED"); 
Toast.makeText(context, "Boot completed", Toast.LENGTH_SHORT).show(); 
     } 

     } 
    } 

auch in Manifest-Datei Empfänger wie diese

<receiver android:name="com.example.startuptest.StartUpBootReceiver" android:enabled="true" android:exported="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter>    
</receiver> 
+0

Wo unterscheidet sich das vom OP-Code? – JacksOnF1re

+0

Änderungen vorgenommen (Unterschiede), die Sie in meinem Code vorgeschlagen, siehe aktualisierte Frage – pcj

+0

gibt es keine Notwendigkeit für Kategorie Standard – JacksOnF1re

Verwandte Themen