2012-07-31 71 views
1

在iOS世界中的數據可以通過使用開放協議在應用程序之間交換。例如,如果我有一封帶有pdf附件的電子郵件,我可以將其打開到PDFExpert中,即使這些應用程序在SandBox上運行並且它們沒有共享文件系統。Android - 開放協議(Bonjour)就像iOS上的

在Android的情況下,我注意到這樣的過程是不同的,例如我可以將文檔保存到文件系統中讓我們說/ mnt/Apps_Name,然後我可以在其他應用程序中重新打開該文檔。

有沒有辦法讓用戶體驗iOS應用程序中的應用程序之間交換數據/文檔?你有什麼樣的例子嗎?對官方文檔的一些引用?他們是否需要一些Bonjour或Zero Conf的實施?

+1

這是你在找什麼? http://developer.android.com/guide/components/intents-filters.html – curioustechizen 2012-07-31 08:22:35

回答

2

也許意圖的方法是你在找什麼。通過設置一個動作到一個意圖,比如說,ACTION_VIEW,你在意圖(即一個PDF文件)中設置相應的數據,系統決定哪些應用程序能夠顯示該信息。如果有多個應用程序有能力,通常會有一個對話框提示用戶決定應用程序。

查看PDF例如:

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

意圖的特點是我在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