[英]“Never ask again” checkbox is never shown in Android runtime permission
我的手機是Nexus6,級別23。
我的應用程序中的目標SDK版本為22。
我通過支持包中的Fragment在BaseFragment中實現了棉花糖運行時權限兼容功能。
根據sdk文檔,第一次拒絕后,權限對話框中將顯示“不再詢問”復選框。 同時,shouldShowRequestPermissionRationale()將返回true。
但是,無論我拒絕該權限多少次,我都不會在權限對話框中看到“不再詢問”復選框,並且shouldShowRequestPermissionRationale始終返回false。
有什么問題嗎?
有什么問題嗎?
是的,就在這里:“我的應用程序中的目標sdk版本是22。”
您的選擇是:
使用23或更高版本的targetSdkVersion
,並實現運行時權限代碼( checkSelfPermission()
, requestPermissions()
等)
使用targetSdkVersion
的22或更低,並沒有實現運行時權限代碼( checkSelfPermission()
requestPermissions()
等)
組合的預期結果( targetSdkVersion
為22並嘗試使用運行時權限代碼)未記錄targetSdkVersion
的AFAIK。
拒絕后您是否再次調用requestPermissions()? 首次拒絕后再次調用requestPermissions()時,將顯示“不再詢問”復選框。
像這樣:
private void checkPermission(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(checkSelfPermission(Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.GET_ACCOUNTS}, PERMISSION_REQUEST);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case PERMISSION_REQUEST:
checkPermission();
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.