相关疑难解决方法(0)

Android 11 Scoped 存储权限

我试图更好地了解 Android 11 版本发布后我将能够做什么。

我的应用程序使用提供的图像的文件路径Environment.getExternalStorageDirectory()来创建照片相册,但使用Android 11 我将无法直接访问 files

根据Android开发人员文档,他们最近引入了该MANAGE_EXTERNAL_STORAGE权限,但我不明白添加此权限是否可以继续访问文件Environment

有没有人有想法???

谢谢

2021 年 1 月更新

我在 Android 11 虚拟设备上尝试了我的应用程序,即使没有请求MANAGE_EXTERNAL_STORAGE许可,它似乎也能完美运行!

阅读 Android Developers 上的文档,似乎使用FILEAPI 仅访问照片和媒体位置的应用程序可以继续工作,但我不确定

有没有人更了解Android文档???

android file android-developer-api android-storage android-11

44
推荐指数
6
解决办法
5万
查看次数

针对 Android 11 (Api 30) 重命名视频/图像

我很难简单地重命名由应用程序创建但已放入文档文件夹中的文件。

编辑:

碰巧这些视频不是由应用程序创建的,但预计会由应用程序重命名。用户在开始时手动将视频放入文档文件夹中。我的错。

这是我的代码:

public static boolean renameVideoFile(Context c, File from, File to) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
        try {
            Uri fromUri = FileProvider.getUriForFile(c, c.getPackageName() + ".provider", new File(FileUtils.getVideosDir(), from.getName()));
            ContentResolver contentResolver = c.getContentResolver();
            ContentValues contentValues = new ContentValues();

            contentValues.put(MediaStore.Files.FileColumns.IS_PENDING, 1);
            contentResolver.update(fromUri, contentValues, null, null);
            contentValues.clear();
            contentValues.put(MediaStore.Files.FileColumns.DISPLAY_NAME, to.getName());
            contentValues.put(MediaStore.Files.FileColumns.IS_PENDING, 0);
            contentResolver.update(fromUri, contentValues, null, null);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    } else {
        if (from.renameTo(to)) {
            removeMedia(c, from);
            addMedia(c, to);
            return true;
        } else …
Run Code Online (Sandbox Code Playgroud)

java android

5
推荐指数
1
解决办法
2088
查看次数