簡體   English   中英

Android運行時權限中永遠不會顯示“不再詢問”復選框

[英]“Never ask again” checkbox is never shown in Android runtime permission

我的手機是Nexus6,級別23。

我的應用程序中的目標SDK版本為22。

我通過支持包中的Fragment在BaseFragment中實現了棉花糖運行時權限兼容功能。

根據sdk文檔,第一次拒絕后,權限對話框中將顯示“不再詢問”復選框。 同時,shouldShowRequestPermissionRationale()將返回true。

但是,無論我拒絕該權限多少次,我都不會在權限對話框中看到“不再詢問”復選框,並且shouldShowRequestPermissionRationale始終返回false。

有什么問題嗎?

有什么問題嗎?

是的,就在這里:“我的應用程序中的目標sdk版本是22。”

您的選擇是:

  1. 使用23或更高版本的targetSdkVersion ,並實現運行時權限代碼( checkSelfPermission()requestPermissions()等)

  2. 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM