Android – erkennt Telefon entsperren Ereignis, nicht Bildschirm auf

Gibt es eine Möglichkeit zu erkennen, wann ein Benutzer das Telefon freischaltet? Ich weiß über ACTION_SCREEN_ON und ACTION_SCREEN_OFF , aber diese scheinen gefeuert zu werden, wenn der Bildschirm ACTION_SCREEN_ON und ACTION_SCREEN_OFF , wenn er den Netzschalter drückt, aber nicht wirklich, wenn das Telefon beim Drücken der Menütaste entsperrt wird …

Ich versuche, die Freischaltung / Sperre zu erkennen, während eine Aktivität ausgeführt wird, und ich möchte die Aktivität wieder aufnehmen, nachdem sie freigegeben wurde.

  • Open-sided Android-Schlaganfall?
  • Synchronisierte Audiowiedergabe auf separaten Android-Geräten
  • Android: App-Name von Absicht erhalten
  • Android: Ton im mp3-Format aufnehmen
  • Ist die Android-UI-Entwicklung gut zu einem partikulären Design-Muster?
  • Problem, das Video in Webview zu laden
  • Was ist die SortedList <T> mit RecyclerView.Adapter?
  • Was ist der Unterschied zwischen @android: und? Android:
  • Android: Benachrichtigung von BroadcastReceiver
  • Android: Wie man Textfarbe für Listenelemente in AlertDialog richtig festlegt
  • Android - Erstellen einer kreisförmigen Maske auf Video
  • Android Manifest Fusion mit Facebook und Firebase Bibliotheken
  • 4 Solutions collect form web for “Android – erkennt Telefon entsperren Ereignis, nicht Bildschirm auf”

    Hier ist was zu tun:

    Sagen Sie, dass Sie das Entsperrungsereignis erkennen und etwas in Ihrer Tätigkeit tun möchten, wenn das Telefon freigeschaltet ist. Habe einen Broadcast Receiver für ACTION_SCREEN_ON, ACTION_SCREEN_OFF und ACTION_USER_PRESENT.

    OnResume der Aktivität wird aufgerufen, wenn ACTION_SCREEN_ON abgefeuert wird. Erstellen Sie einen Handler und warten Sie auf ACTION_USER_PRESENT. Wenn es gefeuert wird, implementiere das, was du für deine Tätigkeit willst.

    Credit geht an CommonsWare Antwort hier: Android – Was passiert, wenn Gerät freigeschaltet ist?

    Nachdem ich eine Weile damit gefahren bin, habe ich festgestellt, dass der beste Weg, dies zu tun ist, einen BroadcastReceiver auf der Aktion "android.intent.action.USER_PRESENT" zu registrieren.

    "Broadcast-Aktion: Gesendet, wenn der Benutzer anwesend ist, nachdem das Gerät aufwacht (zB wenn der Keyguard weg ist)."

    Um zwischen den Fällen zu unterscheiden, in denen der Benutzer seinen Bildschirm eingeschaltet hat, wenn er nicht gesperrt war, wenn er tatsächlich entriegelt wurde, verwenden Sie den KeyguardManager, um die Sicherheitseinstellungen zu überprüfen.

    Codebeispiel:

    Fügen Sie dies zu Ihrer Aktivität hinzu:

     registerReceiver(new PhoneUnlockedReceiver(), new IntentFilter("android.intent.action.USER_PRESENT")); 

    Dann benutze diese Klasse:

     public class PhoneUnlockedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { KeyguardManager keyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE); if (keyguardManager.isKeyguardSecure()) { //phone was unlocked, do stuff here } } } 
     public class PhoneUnlockedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)){ Log.d(TAG, "Phone unlocked"); }else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){ Log.d(TAG, "Phone locked"); } } } 

    Registerempfänger durch diese Anweisung

     receiver = new PhoneUnlockedReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_USER_PRESENT); filter.addAction(Intent.ACTION_SCREEN_OFF); registerReceiver(receiver, filter); 

    Habe es nicht getestet, sondern probier folgendes aus:

    • Warten Sie auf ACTION_SCREEN_ON .
    • (Nach dem Bildschirm ist eingeschaltet) Warten Sie auf ACTION_MAIN mit der Kategorie CATEGORY_HOME (was den Startbildschirm startet) – Das ist wahrscheinlich das, was nach dem Freischalten des Telefons gesendet wird.

    Der erste Schritt wird benötigt, um regelmäßige HOME-Tasten zu filtern.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.