uses-permission android:name="android.permission.WAKE_LOCK 权限问题
uses-permission android:name="android.permission.WAKE_LOCK permission issue
我正在我的应用程序中使用此权限,并且在所有设备和 Marhshmallow 6.0
设备中都可以正常工作。
不需要 WAKE_LOCK
权限运行时,因为它的正常权限但在 Nougat 7.0
设备中出现问题。
应用程序崩溃并发生错误 "java.lang.SecurityException: Neither user 10799 nor current process has android.permission.WAKE_LOCK"
在线 wakelock.acquire();
如何解决?
找到解决方案
据我所知,这在清单文件中就足够了
<uses-permission android:name="android.permission.WAKE_LOCK"/>
对于屏幕连续打开写在逻辑下面
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
您已在 运行 时间请求许可:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& ContextCompat.checkSelfPermission(this, Manifest.permission.WAKE_LOCK) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WAKE_LOCK},
REQUEST_PERMISSION);
}
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull final String[] permissions, @NonNull final int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted.
} else {
// User refused to grant permission.
}
}
}
使用
<uses-permission android:name="android.permission.WAKE_LOCK" />
仅此而已,无需额外代码。
调用 acquire() 获取唤醒锁并强制设备保持在创建唤醒锁时请求的级别。
当您完成并且不再需要锁时调用 release()。尽快执行此操作非常重要,以避免 运行 过度耗尽设备的电池电量。
在清单末尾添加所有使用权限
我正在我的应用程序中使用此权限,并且在所有设备和 Marhshmallow 6.0
设备中都可以正常工作。
不需要 WAKE_LOCK
权限运行时,因为它的正常权限但在 Nougat 7.0
设备中出现问题。
应用程序崩溃并发生错误 "java.lang.SecurityException: Neither user 10799 nor current process has android.permission.WAKE_LOCK"
在线 wakelock.acquire();
如何解决?
找到解决方案
据我所知,这在清单文件中就足够了
<uses-permission android:name="android.permission.WAKE_LOCK"/>
对于屏幕连续打开写在逻辑下面
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
您已在 运行 时间请求许可:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& ContextCompat.checkSelfPermission(this, Manifest.permission.WAKE_LOCK) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WAKE_LOCK},
REQUEST_PERMISSION);
}
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull final String[] permissions, @NonNull final int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted.
} else {
// User refused to grant permission.
}
}
}
使用
<uses-permission android:name="android.permission.WAKE_LOCK" />
仅此而已,无需额外代码。 调用 acquire() 获取唤醒锁并强制设备保持在创建唤醒锁时请求的级别。
当您完成并且不再需要锁时调用 release()。尽快执行此操作非常重要,以避免 运行 过度耗尽设备的电池电量。
在清单末尾添加所有使用权限