我的android項目targetsdkvesion是15,minsdkversion是9,compilesdkversion是23,我在androidmanifest.xml中列出了android.permission.READ_PHONE_STATE。 我在設置中撤銷權限。然後我調試我的項目,我發現權限已被授予該項目,但在系統設置中,權限被撤銷。 (溫馨提示:該設備是承上啓下的5倍,在Android 6.0)我已經撤消了android權限,但是仍然允許返回
我的代碼:
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但許可仍然授予。
我的問題是從他的不同。雖然權限已被撤銷,並且授予了自主權限返回權限,但我仍可以毫無例外地閱讀電話狀態。 –
你說我必須將targetsdkversion設置爲23,這是否意味着當targetsdkversion小於23時不需要檢查自己的許可。因此舊代碼不需要檢查並且可以在棉花糖設備中運行? –
如果你的目標是少於23你不需要要求運行時權限,因爲在你的代碼** if(Build.VERSION.SDK_INT> = 23){} **控制不會進入這個**如果* *聲明。但是你的代碼編譯是因爲你的compileSdkVersion爲23。 – Thahaseen