Способ получить разблокировку в андроиде?

Есть ли способ получить что-то вроде PHONE_UNLOCKEDBroadcastReceiver)?

У меня есть служба, которая показывает Toast, когда экран включен. К сожалению, несколько телефонов не показывают его, пока не разблокируются. В большинстве случаев сообщение Toast уже прошло.

Ответы

Ответ 1

Существует действие получателя широковещательной передачи ACTION_USER_PRESENT, здесь - реализация ACTION_USER_PRESENT и ACTION_SHUTDOWN.

добавить это в ваше приложение Манифесты

<receiver android:name=".UserPresentBroadcastReceiver">
  <intent-filter>
    <action android:name="android.intent.action.USER_PRESENT" />
    <action android:name="android.intent.action.ACTION_SHUTDOWN" />
 </intent-filter>
</receiver>

получать акции

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class UserPresentBroadcastReceiver extends BroadcastReceiver {

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

        /*Sent when the user is present after 
         * device wakes up (e.g when the keyguard is gone)
         * */
        if(intent.getAction().equals(Intent.ACTION_USER_PRESENT)){

        }
        /*Device is shutting down. This is broadcast when the device 
         * is being shut down (completely turned off, not sleeping)
         * */
        else if (intent.getAction().equals(Intent.ACTION_SHUTDOWN)) {

        }
    }

}

ОБНОВИТЬ:

Как часть Android 8.0 (уровень API 26) Фоновые пределы выполнения, приложения, которые нацелены на уровень API 26 или выше, больше не могут регистрировать широковещательные приемники для неявных широковещательных передач в своем манифесте. увидеть