我正在显示来自我的应用程序的通知,并且此通知中有一个操作,当用户单击该操作时,将使用我设置的意图调用相应的操作类.现在,我想执行一个特定的操作,但在此之前,用户需要解锁屏幕,如果它是针脚/图案保护.我无法要求用户解锁设备,即在锁定屏幕上打开解锁键盘/图案.
以下是我的代码,
//HandleAction is a java class that extends IntentService Intent intent = new Intent(context, HandleAction.class); intent.putExtra(key, "my_value"); //Used to send information to action class PendingIntent pi = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder notification = new NotificationCompat.Builder(mContext); //set the title, icon etc for builder and add action as below notification.addAction(icon, "my_label", pi);
当用户点击通知操作时,我将控件发送到MyAction.java中的onHandleIntent.
在这里,我想要求用户在密码保护时解锁设备,然后执行操作.如何在onHandleIntent中请求用户解锁设备?
我发现使用KeyguardManager和KeyguardLock来实现这一点,但是keyguardManager.newKeyguardLock是不推荐使用的方法,我想避免这种情况.所以,下一个是使用"FLAG_TURN_SCREEN_ON"和"FLAG_KEEP_SCREEN_ON",但我无法弄清楚如何在这种情况下使用它们.我没有从我的动作类中启动任何窗口,它只是一个增加我的计数器的操作.点击它后,通知应该消失,执行我的操作就可以了.
我发现了一个类似的问题解锁手机,但它的方式是通过启动虚拟/空活动.
在此先感谢任何帮助,建议:)