0

所以我基本上知道如何使用 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)如果我想运行基本上会播放警报并显示一些文本的活动,我可以在不解锁屏幕的情况下进行吗?就像正常的闹钟或音乐播放器一样工作。并且有一个按钮可以执行一些进一步的任务而无需解锁屏幕

我基本上想做的是在活动被触发时发出警报。如果用户按下按钮,它应该播放另一种声音。有没有办法在不要求用户输入密码的情况下实现这一点?

4

1 回答 1

0
  1. 如果不是简单的(滑动锁),而是密码或图案,则用户必须先解锁。否则,恶意应用程序可能会覆盖任何安全屏幕。

  2. 我认为您可以播放声音等。但是要在锁定屏幕上显示某些内容,您需要窗口标志FLAG_SHOW_WHEN_LOCKED和可选FLAG_DISMISS_KEYGUARD的 .

基本上,getWindow.addFlags(FLAG_SHOW_WHEN_LOCKED);会将这个(并且只有这个)活动显示为不安全的内容,在锁定屏幕的顶部。您可以将交互 UI 放在这里。

于 2013-07-07T10:16:25.833 回答