使用权限android:name=";android.permission.WAKE_锁定权限问题
我正在我的应用程序中使用此权限,并且在所有设备以及使用权限android:name=";android.permission.WAKE_锁定权限问题,android,android-permissions,android-7.0-nougat,Android,Android Permissions,Android 7.0 Nougat,我正在我的应用程序中使用此权限,并且在所有设备以及Marhshmallow 6.0设备中都能正常工作 无需WAKE_LOCK权限运行时,因为其权限正常,但在Nougat 7.0设备中出现问题 应用程序崩溃并出现错误“java.lang.SecurityException:用户10799和当前进程都没有android.permission.WAKE_LOCK”在线wakelock.acquire() 如何解决这个问题?找到解决方案 据我所知,这在清单文件中已经足够了 <uses-pe
Marhshmallow 6.0
设备中都能正常工作
无需WAKE_LOCK
权限运行时,因为其权限正常,但在Nougat 7.0
设备中出现问题
应用程序崩溃并出现错误“java.lang.SecurityException:用户10799和当前进程都没有android.permission.WAKE_LOCK”
在线wakelock.acquire()代码>
如何解决这个问题?找到解决方案
据我所知,这在清单文件中已经足够了
<uses-permission android:name="android.permission.WAKE_LOCK"/>
您已在运行时请求权限:
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.
}
}
}
使用
只是,不需要额外的代码。
调用acquire()获取唤醒锁,并强制设备保持在创建唤醒锁时请求的级别
完成并且不再需要锁时,调用release()。尽快这样做非常重要,以避免过度消耗设备的电池
在清单末尾添加所有使用权限看一看。你能发布你的androidmanifest.xml吗?确切地说是你的
清单。xml
必须包含格式错误的信息共享你的代码清单文件发布你的清单文件不需要请求唤醒锁定权限。如果是这样,我认为这就足够了危险权限只写在logicWAKE_LOCK上面,优先级正常,不危险。我想你已经在应用程序中声明了权限,请检查一下。我不是OP:-)无需询问WAKE_LOCK
权限。这对8.0 Android emulator没有帮助,同样,在应用程序之后放置使用权限
也是无用的。我获得无法获取wakeLock
,安全异常:用户10085和当前进程都没有android.permission.WAKE_LOCK
。
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" />