Android - Open协议(Bonjour)就像在iOS上一样

时间:2012-07-31 08:17:20

标签: java android ios bonjour zeroconf

在iOS世界中,

可以通过使用Open Protocol在应用程序之间交换数据。例如,如果我有一个带有pdf附件的电子邮件,我可以将其打开到PDFExpert中,即使这些应用程序在SandBox上运行且他们没有共享文件系统。

对于Android,我注意到这样的程序是不同的,例如我可以将文档保存到文件系统中,例如/ mnt / Apps_Name,然后我可以在其他应用程序中重新打开该文档。

有没有办法让用户体验iOS世界中的应用之间的数据/文档交换?你有什么例子吗?一些参考官方文档?他们需要一些Bonjour或Zero Conf实现吗?

2 个答案:

答案 0 :(得分:2)

也许Intent方法正是您所寻求的。通过将操作设置为Intent,例如,ACTION_VIEW,您可以在Intent中设置相应的数据(即pdf文件),系统将确定哪些应用程序能够显示该信息。如果有多个应用程序可用,通常会出现一个对话框,提示用户决定应用程序。

查看PDF示例:

Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
startActivity(intent);

Intents功能是我在Android开发中的最爱之一。例如,看看共享任何文件/文本/图像/是多么容易......没有实现任何Oauth / Oauth2的痛苦....

Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
String toShare = "This is the text to share";
// You can add extras
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");

// Start intent with choose prompt
startActivity(Intent.createChooser(intent, "Share via"));

结果:

enter image description here

答案 1 :(得分:1)

Android 4.1添加了Network Service Discovery,这应该是您想要的 - 似乎实际上是在Bonjour under the hood之上实现的。