Android检测Chromebook上的锁定解锁事件

Posted

技术标签:

【中文标题】Android检测Chromebook上的锁定解锁事件【英文标题】:Android detect lock Unlock event on 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 event、A way to get unlock event in android?、Android - detect phone unlock event, not screen on 的很多方法,但对 Chromebook 没有任何作用。 有没有其他方法可以检测 Android Chromebook 上的锁定、解锁事件?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

我没有在清单中声明这一点,已经使用 Context.registerReceiver() 显式注册了 Intent.ACTION_USER_PRESENT。它在 Google Pixel Android 11 中运行良好,但在 Chromebook 上无法运行。 如文档所述:“即使这些隐式广播仍在后台运行,您也应该避免为它们注册监听器。” ...可能是因为无法保证广播会发生。

以上是关于Android检测Chromebook上的锁定解锁事件的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式锁定 Chromebook?

android系统用户数据锁定怎么办?

ARM Chromebook 上的 Android 开发环境?

Android Activity 生命周期和锁定/解锁设备

只因少打一个字符 “&”,大量谷歌 Chromebook 无法解锁

通过 Android 应用程序的 Chromebook 规范