问题描述
我想检测 Chromebook 锁定、解锁事件。我正在使用前台服务并注册广播来检测 Intent.ACTION_SCREEN_ON、Intent.ACTION_SCREEN_OFF、Intent.ACTION_USER_PRESENT。在 Chromebook 上仅获得 Intent.ACTION_SCREEN_ON、Intent.ACTION_SCREEN_OFF 广播,但未获得 Intent.ACTION_USER_PRESENT 广播。
override fun onCreate() {
super.onCreate()
startForeground()
intentFilter = IntentFilter(Intent.ACTION_SCREEN_ON)
intentFilter = IntentFilter(Intent.ACTION_USER_PRESENT)
intentFilter.addAction(Intent.ACTION_SCREEN_OFF)
//other code
}
class XYZbroadcastReceiver : broadcastReceiver() {
override fun onReceive(context: Context?,intent: Intent) {
val action = intent.action
if (Intent.ACTION_USER_PRESENT == action) {
}
else if (Intent.ACTION_SCREEN_OFF == action) {
}
else if(Intent.ACTION_SCREEN_ON == action){
}
}
我尝试了 Android detect phone lock event、A way to get unlock event in android?、Android - detect phone unlock event,not screen on 中的许多方法,但对 Chromebook 没有任何效果。 有没有其他方法可以在 Android Chromebook 上检测锁定、解锁事件?
解决方法
您所指的信息可能已过时...
从 API 级别 26 开始,您也不会在常规 Android 上收到这种隐式广播:
https://developer.android.com/guide/components/broadcast-exceptions