0

Ich habe versucht, das Problem zu beheben, dass Boot_complete Empfänger in bestimmten Geräten nicht funktioniert.BootReceiver funktioniert nicht in allen Android-Geräten

Wie Vivo Gerät, die iManager App mit Auto-Start-Manager haben. Hier kann der Benutzer beim Start des Geräts die App von Autostart wechseln.

Was soll ich zusammen mit unten als Intent-Filter verwenden, um meinen Dienst nach dem Neustart des Geräts neu zu starten.

Frühere Gedanken über die Verwendung von Battery_Change-Empfänger, aber es wird nicht von Manifest arbeiten, wie ich Laufzeit-Empfänger-Register sein muss.

Jeder Vorschlag wäre wirklich hilfreich.

Unten ist, was ich als Intent-Filter für meine App verwendet habe. In den meisten Geräten funktioniert es wie erwartet. Aber nicht in allem.

<intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
    <action android:name="android.intent.action.REBOOT" /> 
</intent-filter> 
+0

haben Sie die Berechtigungen korrekt in Manifest festgelegt? –

+0

Wo ist Ihre App installiert, externer oder interner Speicher? –

+0

Ja @chalithageekiyanage Ich habe die Erlaubnis erhalten, boot_complete auch im Manifest zu empfangen. –

Antwort

1

Es gibt eine Sache, die mein Team und ich bei einem ähnlichen Problem entdeckt haben. Sie können wie so den USB-Zustand überwachen:

<receiver 
    android:name=".MyReceiver" 
    android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.hardware.usb.action.USB_STATE" /> 
    </intent-filter> 
</receiver> 

Und wenn ich recht erinnert, wird dies eine Sendung vor die regelmäßige BOOT_COMPLETED Aktion sagen Ihnen, es ist oder nicht alles USB angeschlossen senden.

Einige Hersteller verwenden ihre eigene Version von BOOT_COMPLETED, wie Sie here lesen können, aber die USB_STATE ist eine Alternative, basierend auf den Dingen, die Sie tun möchten. Beachten Sie können erhalten mehrere Übertragungen mit dieser Methode!

Alternativ können Sie auch eine AccessibilityService oder die JobService von der Firebase SDK verwenden. Mehr Details here.

+0

Vielen Dank, dass Sie USB_State vorgeschlagen haben. Nun, im Grunde ist das, was ich in Logcat sehen kann, dass iManager blockiert App von boot_complete Aktion. 05-01 07: 39: 51.110 2155-2183 /? W/BroadcastQueue: Abbrechen der App com.testing.app/10178 für Broadcast Intent starten {act = android.intent.action.BOOT_COMPLETED flg = 0x8000010 (hat Extras)}: Prozess ist verboten zu starten –

+0

Hallo, @Jordy Ich habe es versucht USB_STATE aber beim Neustart nicht möglich, dasselbe Ereignis im Empfänger abzufangen. –

+0

Hallo @Jordy Unter der Ausgabe 05-01 16: 35: 03.394 2219-4544 /? W/BroadcastQueue: Abbrechen des Startens der App com.testing.app/10180 für Broadcast Intent {act = android.hardware.usb.action.USB_STATE flg = 0x20000010 (hat Extras)}: process ist es verboten, zu starten –

Verwandte Themen