我已经撤销了android权限,但checkselfpermission仍然被授予

时间:2016-03-31 08:34:04

标签: android permissions

我的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,但仍然获得了许可。

1 个答案:

答案 0 :(得分:0)

您的目标为15,因此当您撤销权限时,权限仍然存在。如果你的目标是23并且你撤销了许可,显然你需要再次获得用户的许可。如果您计划在应用程序中集成运行时权限,则必须以23为目标。

选中此checkSelfPermission returning PERMISSION_GRANTED for revoked permission with targetSdkVersion <= 22