小编Ame*_*721的帖子

如何可靠地获取API Level> = 26的屏幕解锁事件?

根据官方文档,只能从Android O(API 26)开始动态注册屏幕锁定/解锁事件的BroadcastReceiver(通过在Activity中调用registerReceiver)。在AndroidManifest.xml中注册这些事件不再起作用,因此,当应用程序不运行时(先前已被Android终止或被用户强制关闭),该应用程序将不再能够接收这些事件(ACTION_SCREEN_ON / ACTION_USER_PRESENT)。

帖子中也提到了同样的问题: Android-检测手机解锁事件,而不是屏幕显示

是否还有其他其他可靠且可行的方式来获取屏幕锁定/解锁事件?

通过在应用程序的AndroidManifest .xml文件中注册ACTION_USER_PRESENT,尝试隐式广播以接收屏幕锁定/解锁事件。但是根据文档,除了某些例外情况之外,不当广播都是行不通的。您必须在活动类中使用registerReceiver的动态注册来执行此操作。因此,如果该应用被Android操作系统杀死,或者被用户强行停止,则该应用不会收到屏幕锁定/解锁广播。

活动类动态广播接收机

 registerReceiver(new PhoneUnlockedReceiver(), 
                  new  IntentFilter("android.intent.action.USER_PRESENT"));

public class PhoneUnlockedReceiver extends BroadcastReceiver {

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

            KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(
                    Context.KEYGUARD_SERVICE);
            if (keyguardManager.isKeyguardSecure()) {

                //phone was unlocked, add handling here          

            }
        }
}
Run Code Online (Sandbox Code Playgroud)

android android-api-levels

5
推荐指数
0
解决办法
265
查看次数

Android 操作系统上的 TEE/HSM 支持

Android 具有硬件支持安全性的概念,如 TEE,在最新的 Android 中,即 Android Pie 设备可以具有 HSM(Strongbox)。

1.TEE和HSM的实际区别是什么?

2.Android HSM 是否可以用作密码学解决方案,例如 Whitebox 解决方案?

android selinux hsm android-keystore

4
推荐指数
1
解决办法
1931
查看次数