使用权限 android:name="android.permission.WAKE_LOCK 权限问题

aj0*_*shi 5 android android-permissions android-7.0-nougat

我正在我的应用程序中使用此权限,并且在所有设备和Marhshmallow 6.0设备中都可以正常工作。

不需要WAKE_LOCK许可运行时,因为它的正常许可但在Nougat 7.0设备中出现问题。

应用程序崩溃并"java.lang.SecurityException: Neither user 10799 nor current process has android.permission.WAKE_LOCK"在线发生错误wakelock.acquire();

如何解决?

Rah*_*rma 7

<uses-permission android:name="android.permission.WAKE_LOCK" />
Run Code Online (Sandbox Code Playgroud)

只是,不需要额外的代码。调用acquire()来获取唤醒锁并强制设备保持在创建唤醒锁时请求的级别。

完成后调用release()并且不再需要锁定。尽快执行此操作非常重要,以避免过度消耗设备的电池电量。

在清单末尾添加所有使用权限

  • 这在 8.0 Android 模拟器上没有帮助,而且在“application”之后放置“uses-permission”也是无用的。我得到“无法获取wakeLock”,“SecurityException:用户10085和当前进程都没有android.permission.WAKE_LOCK”。 (2认同)

Raj*_*har 5

找到解决办法

据我所知,这在 Manifest 文件中就足够了

    <uses-permission android:name="android.permission.WAKE_LOCK"/>
Run Code Online (Sandbox Code Playgroud)

对于屏幕连续打开写下面的逻辑

  getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)