安卓10-13动态申请sd卡权限(java)

    private boolean requestStorage()
    {
        // Android 11 (API 30) 及以上版本的处理逻辑
        if(Build.VERSION.SDK_INT >= 30)
        {
            if(!Environment.isExternalStorageManager()) {
                Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS);
                Uri uri = Uri.fromParts("package", getCallingActivity().getPackageName(), null);
                intent.setData(uri);
                startActivity(intent);
                Toast.makeText(this, "请在设置中授予所有文件访问权限", Toast.LENGTH_LONG).show();
                return false;
            }
            else{
                return true;
            }
        }
        // 对于 Android 10 (API 29) 及以下版本,使用旧的运行时权限申请方式
        else
            {
                String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
                requestPermissions(permissions,1001);
                Toast.makeText(this, "请授予存储权限以继续", Toast.LENGTH_SHORT).show();
            return false;
            }
    }

 

posted on 2025-12-19 12:51  小沙盒工作室  阅读(0)  评论(0)    收藏  举报