检查 android 的运行时权限
Check runtime permission on android
我使用 ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION);
检查我的应用程序是否具有位置权限或 not.This 方法 returns PackageManager.PERMISSION_GRANTED
这是正确的 answer.Now 我转到我的应用程序的设置并禁用位置 permision.Now 以及上述方法 returns PackageManager.PERMISSION_GRANTED
。但它应该 PackageManager.PERMISSION_DENIED
。任何人都可以给我一些想法吗?如果我可以使用另一种方法,它是什么?
请求许可
if (checkSelfPermission(Manifest.permission.CAMERA)
== PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, YOUR_REQUEST_CODE);
}
并检查用户是否已接受您的请求覆盖以下代码
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case YOUR_REQUEST_CODE: {
if (checkSelfPermission(Manifest.permission.CAMERA) ==
PackageManager.PERMISSION_GRANTED){
// permission was granted
} else {
// permission denied
//Disable the functionality
//that depends on this permission.
}
return;
}
}
}
参考:http://sourabhkarkal.com/blogspot/requesting-permissions-in-android-m/
根据您的意见,目标 sdk 是 22。因此方法 checkSelfPermission
始终授予您 Granted
权限。如果要实现Runtime权限,就得改成23。
如果你想要详细的答案,。阅读所有评论。
我使用 ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION);
检查我的应用程序是否具有位置权限或 not.This 方法 returns PackageManager.PERMISSION_GRANTED
这是正确的 answer.Now 我转到我的应用程序的设置并禁用位置 permision.Now 以及上述方法 returns PackageManager.PERMISSION_GRANTED
。但它应该 PackageManager.PERMISSION_DENIED
。任何人都可以给我一些想法吗?如果我可以使用另一种方法,它是什么?
请求许可
if (checkSelfPermission(Manifest.permission.CAMERA)
== PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, YOUR_REQUEST_CODE);
}
并检查用户是否已接受您的请求覆盖以下代码
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case YOUR_REQUEST_CODE: {
if (checkSelfPermission(Manifest.permission.CAMERA) ==
PackageManager.PERMISSION_GRANTED){
// permission was granted
} else {
// permission denied
//Disable the functionality
//that depends on this permission.
}
return;
}
}
}
参考:http://sourabhkarkal.com/blogspot/requesting-permissions-in-android-m/
根据您的意见,目标 sdk 是 22。因此方法 checkSelfPermission
始终授予您 Granted
权限。如果要实现Runtime权限,就得改成23。
如果你想要详细的答案,