在Android 10 & 11 SDK 30如何访问Android设备中的所有文件,并给予管理所有文件的权限我尝试了requestLegacyExternalStorage、defaultToDeviceProtectedStorage、reserveLegacyExternalStorage和MANAGE_EXTERNAL_STORAGE权限,但无效
requestLegacyExternalStorage
defaultToDeviceProtectedStorage
reserveLegacyExternalStorage
MANAGE_EXTERNAL_STORAGE
8cdiaqws1#
你可以使用下面的代码,它对我很有效。
if (SDK_INT >= Build.VERSION_CODES.R) { if (Environment.isExternalStorageManager()) { startActivity(new Intent(this, MainActivity.class)); } else { //request for the permission Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); } } else { //below android 11======= startActivity(new Intent(this, MainActivity.class)); ActivityCompat.requestPermissions(this, new String[]{WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE); }
并在清单文件中添加行android:requestLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
y3bcpkx12#
管理外部存储这仅适用于Android 11 API 30。你必须启动一个意图
Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
允许用户启用所有文件访问。适用于Android 10 API 29设备
requestLegacyExternalStorage="true"
我会的。您可以在这里阅读更多:在Android API中访问外部存储29
ymzxtsji3#
你不可以。没有人可以。不,你不能绕过这个限制。您只能访问、编辑和删除应用自己的数据。有关详细信息,请阅读此处。https://developer.android.com/about/versions/11/privacy/storage
3条答案
按热度按时间8cdiaqws1#
你可以使用下面的代码,它对我很有效。
并在清单文件中添加行
android:requestLegacyExternalStorage="true"
y3bcpkx12#
管理外部存储
这仅适用于Android 11 API 30。
你必须启动一个意图
允许用户启用所有文件访问。
适用于Android 10 API 29设备
我会的。
您可以在这里阅读更多:在Android API中访问外部存储29
ymzxtsji3#
你不可以。没有人可以。不,你不能绕过这个限制。
您只能访问、编辑和删除应用自己的数据。有关详细信息,请阅读此处。https://developer.android.com/about/versions/11/privacy/storage