所以我基本上知道如何使用AlarmManager并解锁屏幕和键控保护来运行活动。这是我正在使用的代码
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wl.acquire();
wakeLock.acquire();
现在它基本上按照预期的方式行事。它唤醒屏幕并解锁钥匙防护装置并运行活动 但我有几个问题
1)如果此人在其锁定屏幕上设置了密码,会发生什么。我读它要求用户先解锁屏幕
2)如果我想运行基本上播放闹钟的活动并显示一些文字我可以在不解锁屏幕的情况下进行操作吗?像普通的闹钟或音乐播放器一样工作。并且有一个按钮可以执行更多任务而无需解锁屏幕
我基本上想要做的是在活动被触发时发出警报。如果用户按下按钮,它应播放另一个声音。有没有办法实现这一点而不要求用户输入他的密码?
答案 0 :(得分:0)
如果不是简单(幻灯片锁定),而是代码或模式,则用户必须先解锁。否则,恶意应用程序可能会覆盖任何安全屏幕。
我认为你可以播放声音等。但是要在锁定屏幕上显示某些内容,你需要窗口标记FLAG_SHOW_WHEN_LOCKED
以及可选FLAG_DISMISS_KEYGUARD
。
基本上,getWindow.addFlags(FLAG_SHOW_WHEN_LOCKED);
会在锁定屏幕上显示此(仅限于此)活动作为不安全的内容。您可以将交互UI放在这里。