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