我的工作对已经通过蓝牙使用下面的方法成功地共享一个生成的PDF文件中的Android应用程序:如何以编程方式在同一Android意图内共享不同MIME类型的多个文件?
public static void sharePdfFile(Context ctx, String pathAndFile) {
try {
Intent share = new Intent(Intent.ACTION_SEND);
share.setPackage("com.android.bluetooth");
share.setType("application/pdf");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(pathAndFile));
share.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(share);
} catch (Exception e) {
ExceptionDAO.Log(CATEGORY.SHARE_INTENT, e, ctx, e.getMessage(), true);
}
}
我被要求包括在此分享意图第二个文件(CSV格式),因此这两个文件一起发送。 我立刻发现this question,其解决通过蓝牙发送多个文件,但仅使用相同的MIME类型的文件(“视频/ *”,在该示例。)
我已经发现大量的亚型通配符MIME的例子(“video/*”,“text/*”等),但在这一点上,我无法找到具有多个特定MIME类型集的示例(例如:“application/pdf”和“text /逗号分隔值”)。 所以,我创建了一个使用“*/*”作为MIME类型的测试方法,希望能够做到这一点。 不幸的是,我的测试方法甚至不足以激活蓝牙共享弹出窗口来选择附近的设备。
我不知道我在做什么错或遗漏了。 我似乎无法在调试时捕获任何错误,所以我认为我仍然错过了一些东西。 我知道PDF和CSV文件,因为这两个文件通过原始的方法精确发射各自的URI都OK(我改变了现有的方法来测试新的CSV文件的MIME类型和URI)
这里是我的测试方法:
public static void shareTwoFilesTest(Context ctx, String pathAndFile, String pathAndFile2) {
try {
Intent share = new Intent(Intent.ACTION_SEND_MULTIPLE);
share.setPackage("com.android.bluetooth");
share.setType("*/*");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(pathAndFile));
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(pathAndFile2));
share.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(share);
} catch (Exception e) {
ExceptionDAO.Log(CATEGORY.SHARE_INTENT, e, ctx, e.getMessage(), true);
}
}
谢谢,工作正常,共享多个文件 –