代码之家  ›  专栏  ›  技术社区  ›  MJM

在OnRequestPermissionsResult中,当用户拒绝权限时,某些设备上的GrantResults返回空值

  •  3
  • MJM  · 技术社区  · 6 年前

    拍摄中: ,在 onRequestPermissionsResult 某些设备上的grantresults返回空值,而某些设备具有值 PackageManager.PERMISSION_DENIED 当用户拒绝权限时。

    我已经为标识用户选择了一个解决方案 认可的 ,请 否认 https://stackoverflow.com/a/31925748/2941375

    grantResults

    else if (grantResults[0] == PackageManager.PERMISSION_DENIED) else if

    arrayindexoutofbound

     @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            switch (requestCode) {
                case PermissionManager.MY_PERMISSIONS_REQUEST_LOCATION_ACCESS: {
                    // If request is cancelled, the result arrays are empty.
                    if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                        DefineLocationService.start(this);
                        startNextActivity(0);
                    } else if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
                        boolean showRationale = ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[0]);
                        if (!showRationale) {
                            // user also CHECKED "never ask again"
                            // you can either enable some fall back,
                            // disable features of your app
                            // or open another dialog explaining
                            // again the permission and directing to
                            // the app setting
                            startNextActivity(ARTIFICIAL_DELAY_MILLIS);
                        } else if (!PermissionManager.MY_REQUESTED_DIALOG) {
                            PermissionManager.checkLocationPermission(this);
                        } else {
                            startNextActivity(0);
                        }
                    } else {
                        startNextActivity(ARTIFICIAL_DELAY_MILLIS);
                    }
    
    
                }
            }
        }
    

    grantResults[0]

    1 回复  |  直到 6 年前
        1
  •  4
  •   ianhanniballake    6 年前