0

我想查询所有可以播放音乐文件的活动。
我试图让所有音乐播放器都像这样:

Intent resolve_intent = new Intent();
resolve_intent.setAction(android.content.Intent.ACTION_VIEW);
resolve_intent.setType("audio/*");
packages = getPackageManager().queryIntentActivities(resolve_intent, 0);

if (packages == null || packages.size() <= 0)
{
    //none found
}

但我每次都得到一个空(或null)列表......
如果我这样做,type = "image/*或者"video/*"
我得到所有可以处理这种类型的应用程序。

只是因为"audio/*"我没有安装任何播放器,即使我知道有一个...
所以我做错了什么?

4

1 回答 1

0

自己喜欢:

我忘了设置数据,我不知道android也使用数据来解决匹配的意图......

工作代码:

Intent resolve_intent = new Intent();
resolve_intent.setAction(android.content.Intent.ACTION_VIEW);
resolve_intent.setDataAndType(Uri.fromFile(new File("/some/path/to/a/file")), "audio/*");
List<ResolveInfo> packages = context.getPackageManager().queryIntentActivities(resolve_intent, 0);
于 2013-11-03T11:29:47.910 回答