如果用户只选择一个文件,那很容易做到:
Intent i = new Intent(Intent.ACTION_VIEW); if (someType == IMAGE) { i.setDataAndType(Uri.fromfile(imagefile),"image/*");}else if (sometype == VIDEO) { i.setDataAndType(Uri.fromfile(vIDeofile),"vIDeo/mp4"); } else if (someType == MUSIC) { i.setDataAndType(Uri.fromfile(musicfile),"audio/mpeg"); } startActivity(i);
但是,如果用户选择一种类型中的两种或更多种类,我如何构建使用用户可能安装的任何图像/音频/视频应用程序的意图?我不想写自定义播放器/观众,因为我知道现有的应用可以做到这一点.
我试图模仿名为“AllShare Play”(https://www.samsung.com/us/2012-allshare-play/)的云应用程序的功能.这个应用程序正是我需要在我的应用程序中执行的 *** 作 – 允许用户“预览”多个文件并仅使用标准的“图库”应用程序用于图像,标准音乐应用程序用于歌曲等.在每种情况下,只选择文件使用每个AndroID设备加载的标准应用程序显示或播放,因此我知道可以不编写查看器或播放器.
任何人有任何想法如何通过Intent.ACTION_VIEW发送多个文件到外部应用程序?
解决方法 发送multible到ACTION_VIEW没有androID标准.但是有一个ACTION_SEND_MULTIPLE标准,文件通过EXTRA_STREAM传输.
对于一个有效的sendmultible示例,请参阅Secure-Photo-Viewer:您从图库应用程序中选择多个图像并将它们发送到Secure-Photo-VIEwer.
如果您的应用程序是此意图的唯一发件人和接收者,您也可以使用与ACTION_VIEW相同的机制.
要了解有关意向通信的更多信息,您可以使用允许发送和接收多种意图的intent-intercept应用程序
这是我用来发送多图像的代码
Intent sendIntent = new Intent(); sendIntent.setType("image/*"); if (selectionCount == 1) { Long imageID = mSelectedItems.first(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(EXTRA_STREAM,getUri(imageID)); } else { sendIntent.setAction(Intent.ACTION_SEND_MulTIPLE); ArrayList<Uri> uris = new ArrayList<Uri>(); for (Long mSelectedItem : mSelectedItems) { uris.add(getUri(mSelectedItem)); } sendIntent.putParcelableArrayListExtra(EXTRA_STREAM,uris); } startActivity(sendIntent);总结
以上是内存溢出为你收集整理的android – Intent.ACTION_VIEW – 多个文件全部内容,希望文章能够帮你解决android – Intent.ACTION_VIEW – 多个文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)