如果有人已经回答道歉 - 如果有人能指出我已经回答的问题,那就太好了......
很简单,我希望能够弹出一个可以处理给定类型文件的应用程序列表 - 例如,如果我有一个音乐文件(mp3,ogg,等等),我希望能够显示可以处理文件并允许用户选择文件的所有已加载媒体应用程序的列表.
我一直在努力创建这样做的意图如下:
Intent myIntent = new Intent();
myIntent.setAction(Intent.ACTION_VIEW);
myIntent.addCategory("android.intent.category.LAUNCHER");
myIntent.setType("mp3");
startActivity(myIntent);
Run Code Online (Sandbox Code Playgroud)
但我显然错了,因为它每次都会崩溃.我应该使用ACTION_PICK还是ACTION_CHOOSER而不是ACTION_VIEW?
更重要的是,是否可以通过Intent.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);
Run Code Online (Sandbox Code Playgroud)
这将为您提供有关可以处理意图的程序的所有信息,包括图标和包名.然后,您可以使用这些选项创建一个对话框,并保存用户选择的选项.
| 归档时间: |
|
| 查看次数: |
5356 次 |
| 最近记录: |