5

Ich habe ein BackgroundReceiver eingerichtet, um die android.intent.action.USER_PRESENT in der Manifest-Datei erhalten gemäß:Intent.ACTION_USER_PRESENT nicht empfangen auf Bienenwabe oder ICS (Samsung) Geräte

<receiver android:name="com.demo.MyBroadcastReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.USER_PRESENT" /> 
     </intent-filter> 
    </receiver> 

Meine überschrieben onReceive(Context, Intent) Methode ist sehr einfach:

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    if (intent != null) 
    { 

     if (Intent.ACTION_USER_PRESENT.equals(intent.getAction()) 
     { 
      // wrapper for Log.d(String, String) 
      Dbug.log("MyBroadcastReceiver: [" + intent.getAction() + "]"); 

      // this calls a service 
      serviceExample(context, intent); 
     } 
    } 
} 

  • Das perfekt, 2 2.2 & auf 2.1 getestet. 3 Geräte (HTC Wunsch, HTC WildFire, Motorola Razr).
  • Dies scheint nicht auf HoneyComb (Samsung Galaxy Tab 10.1) oder ICS (Samsung Galaxy Nexus) Geräten zu funktionieren.
  • Nach diesem Fehler (USER_PRESENT never fires on honeycomb and ICS when keyguard is disabled), ich die Tastensperre auf den fehlerhaften Geräten. Es hat nicht geholfen.

Fragen:

  1. Gibt es einen Trick, diese Absicht Aktionen auf Android 3.x & 4.x zu verwenden?
  2. Vielleicht ist dies ein bekanntes Samsung-Problem?
  3. Oder vielleicht gibt es einige Geräteeinstellungen, die ich auf diesen Geräten vernachlässigt habe?
+0

Diese Frage impliziert, dass es getan werden kann: [Bring Task in den Vordergrund auf android.intent.action.USER_PRESENT] (http://stackoverflow.com/questions/8750854/bring-task-to-front-on-android- intent-action-user-present) –

Antwort

2

Es ist ein Kommentar von ubuntudroid zu dieser Antwort (android app with service only), die sagt, dass Sie benötigen, um Ihre Tätigkeit mindestens einmal zu starten, bevor es richtig die erforderlichen Absichten erhalten.

Offenbar in Android 3.0 eingeführt.

Ich habe diese Theorie noch nicht getestet, aber es würde erklären, was Sie sehen.

+0

Ich bin auf ein ähnliches Verhalten gestoßen, das sich dadurch erklären ließe. Ich habe automatisch ein APK auf einem Gerät bereitgestellt und dann über Broadcast-Empfänger mit ihm kommuniziert. (Android 5.1.1). Die Aktion USER_PRESENT wurde zeitweise empfangen. –