gpt4 book ai didi

android - 在 Android 中,如何根据文件类型显示应用程序选择器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:45:02 24 4
gpt4 key购买 nike

如果这个问题已经得到回答,我深表歉意 - 如果有人可以指出我已经回答的问题,那就太好了......

非常简单,我希望能够弹出一个可以处理给定类型文件的应用程序列表 - 例如,如果我有一个音乐文件(mp3、ogg 等),我想要能够显示可以处理文件并允许用户选择一个的所有已加载媒体应用程序的列表。

我一直在尝试按照以下方式创建 Intent :

Intent myIntent = new Intent();
myIntent.setAction(Intent.ACTION_VIEW);
myIntent.addCategory("android.intent.category.LAUNCHER");
myIntent.setType("mp3");
startActivity(myIntent);

但我显然弄错了,因为它每次都会崩溃。我应该使用 ACTION_PICK 还是 ACTION_CHOOSER 而不是 ACTION_VIEW?

更重要的是,是否可以通过 Intent.type 以外的方式轻松定义所有媒体播放器?我认为 type 应该是正确的 MIME 类型,小写,但我不确定在这种情况下使用什么...

请温柔一点:)

最佳答案

要获得可以成功打开给定 Intent 的应用程序,您将使用 PackageManager。只需按上述方式构造 Intent ,然后使用此代码获取可以处理 Intent 的应用程序。

Intent myIntent = new Intent();
myIntent.setAction(Intent.ACTION_VIEW);
myIntent.addCategory("android.intent.category.LAUNCHER");
myIntent.setType("mp3");

PackageManager manager = getPackageManager();
List<ResolveInfo> info = manager.queryIntentActivities(
myIntent, PackageManager.MATCH_DEFAULT_ONLY);

这将为您提供有关可以处理 Intent 的程序的所有信息,包括图标和程序包名称。然后,您可以创建一个包含这些选项的对话框并保存用户选择的选项。

关于android - 在 Android 中,如何根据文件类型显示应用程序选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834374/

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