android 自动唤醒解锁,Android-唤醒并解锁Devi

应用说明:该应用程序旨在作为特定客户的安全程序(不公开部署)。 当应用程序在一段时间内未检测到移动时,如果应用程序在后台或设备处于睡眠状态,则应发出警报并将其置于前台。

问题:如果设备处于睡眠状态并被锁定,我们需要唤醒并解锁设备。 使用SO和其他地方的各种技术,我们已经能够(部分)唤醒和解锁设备,但是,只有在将设备物理插入计算机中时,这才可以正常工作。 如果设备本身是自行拔出的,并且我们测试了唤醒解锁,则不会发生任何事情。 设备似乎保持睡眠状态,应用程序似乎根本不执行任何操作(无警报)。

我已经使用了有关使用PowerManager和KeyguardManager的文章,以及使用了窗口标志的文章。

这是当前用于唤醒设备的代码:

public void wakeDevice() {

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);

wakeLock = powerManager.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");

wakeLock.acquire();

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);

KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");

keyguardLock.disableKeyguard();

runOnUiThread(new Runnable(){

public void run(){

getWindow().addFlags(

WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED

| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON

| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

}

});

}

从我已经看到/使用过的其他一些SO问题的评论和帖子中,似乎PowerManager / KeyguardManager代码似乎可以解决问题。 再次,正如我之前说的,从USB将设备插入开发机器时,它在技术上可以正常工作,但是在设备分开时绝对不起作用。

另请注意,这是我们的第一个Android应用程序,因此请充分意识到我们可能会完全放弃尝试做的事情。 欢迎任何建议。

简而言之,鉴于上述代码,为什么设备会根据是否插入而表现出如此不同,我们应该如何改变以唤醒和解锁设备? 预先感谢您的协助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值