我发布了一个应用程序,它的内容如下:

requestStoragePermission();

以及功能:
private void requestStoragePermission(){
    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},STORAGE_PERMISSION_CODE);
}
@Override //user response
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if(requestCode == STORAGE_PERMISSION_CODE){
        //If permission is granted
        if(grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
            //Displaying a toast
            String string = getString(R.string.permissionOk);
            Toast.makeText(this,string,Toast.LENGTH_LONG).show();
        }
        else{
            //Displaying another toast if permission is not granted
            String string = getString(R.string.permissionError);
            Toast.makeText(this,string,Toast.LENGTH_LONG).show();
        }
    }
}

它在android 6上可以正常工作…但是在android 4上如何解释呢?比如,android4不需要权限。这是不好的做法吗?

最佳答案

在用户不需要授予危险权限的API级别上,请求该权限不会为用户弹出对话框,并且该权限会自动授予。这仍然符合google的安全策略,因为对于这些api级别,用户必须在安装过程中授予权限。
有些人会告诉您检查代码中的api级别,只有在低于23时才请求权限。这只是代码内部的一个额外层,因此增加了代码的复杂性。你不必那么做。

10-08 17:46