gpt4 book ai didi

android - API 29 等已弃用 ALBUM_ART 列,如何获取路径?

转载 作者:行者123 更新时间:2023-12-01 00:11:45 28 4
gpt4 key购买 nike

我们目前正在使用以下方式获取专辑封面的路径:MediaStore.Audio.AlbumColumns.ALBUM_ART ,并且正在成功获取路径,但在像素 3a (Android 10) 上除外。经过一些研究,ALBUM_ART 已弃用 API 29 及以上,如下所示:Here

在此链接中它说:“应用程序可能没有文件系统权限来直接访问此路径。应用程序不应尝试直接打开此路径,而应使用 ContentResolver#loadThumbnail 来获得访问权限。”

我的问题是:
1)我已经在应用程序 list 上说明了外部存储访问权限(READ_EXTERNAL_STORAGE),并且在应用程序内导航时请求权限。为了获得路径,我必须提供哪些权限才能访问专辑封面?

2)我似乎无法在线找到loadThumbnail上的任何内容(甚至通过代码在ContentResolver类上也找不到,而我正在使用目标并编译SDK 29),如果1)无法完成,那么我该如何使用loadThumbnail为什么它没有显示在代码上?

提前致谢。

最佳答案

为了使用 ContentResolver 的方法,请确保您安装了最新的 SDK 和相关工具,并在您的代码中首先实例化一个 ContentResolver 对象,然后相应地使用它:

public class MainActivity extends AppCompatActivity {
public ContentResolver resolver;
Bitmap albumArt;
Size size;
Uri uriOfItem;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

resolver = new ContentResolver(this) {
@NonNull
@Override
public Bitmap loadThumbnail(@NonNull Uri uri, @NonNull Size size, @Nullable CancellationSignal signal) throws IOException {
return super.loadThumbnail(uri, size, signal);
}
};
//uriOfItem = uri of your file
size = new Size(100, 100);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
try {
albumArt = resolver.loadThumbnail(uriOfItem, size, null);
} catch (IOException e) {
e.printStackTrace();
}
}

}
}

编辑:当谈到你的第一个问题时,如果@Rj_Innocent_Coder 不介意我在这里包括他的评论:

As part of the scoped-storage feature on Android Q, Google announced that SAF (storage access framework) will replace the normal storage permissions. This means that even if you will try to use storage permissions, it will only grant to access to specific types of files for File and file-path to be used



编辑 2:@hetoan2 发表评论后,我再次检查文档,发现 ContentResolver 是抽象的,因此无法使用 ContentResolver.loadThumbnail()作为方法调用。 这意味着在 Activity 中您也可以简单地使用以下 :
Bitmap albumArt = getContentResolver().loadThumbnail(uriOfFile, sizeOfAreaThatDisplaysThumbnail, cancellationSignalOrNull);

关于android - API 29 等已弃用 ALBUM_ART 列,如何获取路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030463/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com