PHONE_UNLOCKED
(BroadcastReceiver
のようなもの)のようなものを受け取る方法はありますか?
画面がオンのときにToast
を表示するサービスを実行しています。残念ながら、ロックが解除されるまで、いくつかの電話はそれを表示しません。ほとんどの場合、Toast
メッセージはすでに消えています。
ブロードキャストレシーバーアクションがありますACTION_USER_PRESENTここにACTION_USER_PRESENTとACTION_SHUTDOWNの実装があります
これをアプリケーションに追加しますManifests
<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)) {
}
}
}
UPDATE:
Android 8.0(APIレベル26)バックグラウンド実行制限の一部として、APIレベル26以上を対象とするアプリは、マニフェストで暗黙的なブロードキャストのブロードキャストレシーバーを登録できなくなりました。 参照