我的android项目targetsdkvesion是15,minsdkversion是9,compilesdkversion是23,我在androidmanifest.xml中列出了android.permission.READ_PHONE_STATE。 我在“设置”中撤消了该权限。然后我调试我的项目,我发现该权限已经授予该项目,但在系统设置中,该权限被撤销。 (提示:该设备是nexus 5x,android 6.0)
我的代码:
if(Build.VERSION.SDK_INT >= 23){
if(checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSIONS_REQUEST_PHONE_STATE);
}else{
deviceRequest.registerDevice();
}
}else{
deviceRequest.registerDevice();
}
代码:checkSelfPermission(Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED返回false。
我不知道为什么,任何人都可以提供帮助?
我想知道targetsdkversion是否小于22,设置中的操作撤销权限实际上可以工作吗?如果客人ui显示撤销的succ,但仍然获得了许可。
答案 0 :(得分:0)
您的目标为15,因此当您撤销权限时,权限仍然存在。如果你的目标是23并且你撤销了许可,显然你需要再次获得用户的许可。如果您计划在应用程序中集成运行时权限,则必须以23为目标。
选中此checkSelfPermission returning PERMISSION_GRANTED for revoked permission with targetSdkVersion <= 22