相关疑难解决方法(0)

在 Android API 29 中访问外部存储

我正在尝试实现一些清理工具。由于某些“安全原因”,越来越多的制造商禁止生根设备,禁止不要求解锁。

API 28 之后,此代码将出错:


ActivityCompat.requestPermissions(this, new String[]{
  Manifest.permission.READ_EXTERNAL_STORAGE,
  Manifest.permission.WRITE_EXTERNAL_STORAGE
}, 1); // Request permission or not, Will got same result

File rootFolder = Environment.getExternalStorageDirectory(); // That is working fine
rootFolder.listFiles(); // That will return null
Run Code Online (Sandbox Code Playgroud)

当然,我可以使用这个:

android:requestLegacyExternalStorage="true"
Run Code Online (Sandbox Code Playgroud)

但我相信将来会被杀死。

那么,有什么优雅的方式来管理 SDCard 吗?

android android-permissions android-external-storage android-10.0

16
推荐指数
1
解决办法
2万
查看次数

java.lang.IllegalArgumentException:所有请求的项目必须由特定 ID 引用(Android)

我在调用时收到此异常MediaStore.createWriteRequest(contentResolver, uris)。与 Anrdroid Q 及以上版本一样,我们必须使用 createWriteRequest 来写入存储。所以我正在尝试以下代码并得到异常。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            List<Uri> uris = new ArrayList<>();
            uris.add(mediaUri);
            MediaStore.createWriteRequest(contentResolver, uris);
            //code
        }
Run Code Online (Sandbox Code Playgroud)

storage android mediastore android-10.0 android-11

0
推荐指数
1
解决办法
5038
查看次数