我想在它弹出时列出一个列表,只显示那些可以播放视频/音频的应用程序。我该怎么做?
没有要播放的特定文件,只想从列表中启动媒体播放器。提前致谢。下面是我感兴趣的例子。
那是不可能的。(无需编写内核模块)
您不能通过源代码/二进制文件过滤其他应用程序。对于您想要做的事情,您必须确定应用程序是否使用媒体库,即使应用程序使用它们,您也无法确定应用程序是否播放音频/视频。
您只能列出所有应用程序并拥有可以这样做的用户标记。
注意:所有应用程序都可以播放音频/视频,我想你想要那些这样做的吗?如果您想查看所有媒体播放器应用程序,您应该使用 Intent 和 MIME。
我想你想与其他应用分享你的音频/视频文件来播放它。为此,您必须使用意图。
使用ACTION_SEND操作共享二进制数据,同时设置适当的 MIME 类型并将数据的 URI 放在一个名为EXTRA_STREAM的额外文件中。这通常用于共享文件,但可用于共享任何类型的二进制内容:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToFile);
shareIntent.setType("audio/*");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_t
更多详情文件
您需要关注ListItem
哪些触发器application
能够打开这种MIME
类型的文件。您可以传递 dummyvideoPath
以及audioPath
with MIME
type, bundled inside Intent
。
Intent
您需要在单击时触发ListItem
。
ListView listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Add Video & Audio using If- Else or however you like to so
}
});
对于视频:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(newVideoPath));
intent.setDataAndType(Uri.parse(newVideoPath), "video/*");
startActivity(intent);
对于音频:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(newAudioPath));
intent.setDataAndType(Uri.parse(newAudioPath), "audio/*");
startActivity(intent);
您也可以使用的方法CreateChooser
Intent sI = new Intent();
sI.setAction(Intent.ACTION_SEND);
sI.putExtra(Intent.EXTRA_STREAM, uriToFile);
sI.setType("audio/*");
startActivity(Intent.createChooser(sI, getResources().getText(R.string.text))