android开机解锁设备,Android – 唤醒和解锁设备

应用描述:

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

问题:

在设备睡眠和锁定的情况下,我们需要唤醒并解锁设备。使用这里发现的各种技术在SO和其他地方,我们已经能够(部分)唤醒和解锁设备,但只有当设备物理插入到计算机时,这只是正常。如果设备本身被拔出,并且我们测试唤醒解锁,没有发生;设备似乎保持睡眠,应用程序似乎什么也没做什么(没有报警)。

以下是目前用于唤醒设备的代码:

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、付费专栏及课程。

余额充值