【问题标题】:Android detect lock Unlock event on ChromebookAndroid检测Chromebook上的锁定解锁事件
【发布时间】:2021-06-29 10:26:15
【问题描述】:

我想检测 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 eventA way to get unlock event in android?Android - detect phone unlock event, not screen on 的很多方法,但对 Chromebook 没有任何作用。 有没有其他方法可以检测 Android Chromebook 上的锁定、解锁事件?

【问题讨论】:

    标签: android android-intent broadcastreceiver google-chrome-os chromebook


    【解决方案1】:

    您所指的信息可能已经过时...

    由于 API 级别 26,您也不会在常规 Android 上收到此隐式广播:

    https://developer.android.com/guide/components/broadcast-exceptions

    【讨论】:

    • 我没有在清单中声明这一点,已经使用 Context.registerReceiver() 显式注册了 Intent.ACTION_USER_PRESENT。它在 Google Pixel Android 11 中运行良好,但在 Chromebook 上无法运行。
    • 如文档所述:“即使这些隐式广播仍在后台运行,您也应该避免为它们注册监听器。” ...可能是因为无法保证广播会发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2017-02-07
    • 1970-01-01
    相关资源
    最近更新 更多