androlua 安卓13 动态申请sd卡权限

function checkAndRequestStoragePermission()
    -- Android 11 (API 30) 及以上版本的处理逻辑
    if Build.VERSION.SDK_INT >= Build.VERSION_CODES.R then
        -- 检查是否已有“管理所有文件”的权限
        if not Environment.isExternalStorageManager() then
            -- 没有权限,则创建一个Intent跳转到系统设置页面
            local intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
            local uri = Uri.fromParts("package", activity.getPackageName(), nil)
            intent.setData(uri)
            activity.startActivity(intent)
            
            -- 给用户一个提示
            Toast.makeText(activity, "请在设置中授予“所有文件访问”权限", Toast.LENGTH_LONG).show()
            return false -- 表示权限尚未获得
        else
            return true -- 已有权限
        end
    else
        -- 对于 Android 10 (API 29) 及以下版本,使用旧的运行时权限申请方式
        -- 这部分代码可以根据你应用的最低支持版本决定是否保留
        local permissions = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
        }
        -- 简化处理:这里假设已授权。实际开发中应调用系统API动态申请。
        return true
    end
end

 

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