2012-11-09 40 views
2

我試圖從我的應用程序發送一個文件到另一個。我不想使用「應用選擇器」,我只是想「強制」該應用打開我想要的文件。發送文件到另一個應用程序

我已經試過:

Uri data = Uri.fromFile(file); 
PackageManager pm = getApplicationContext().getPackageManager(); 
Intent ic = pm.getLaunchIntentForPackage("org.ais.archidroid"); 
ic.setAction(Intent.ACTION_SEND); 
ic.setData(data); 
ic.putExtra(Intent.EXTRA_STREAM, data); 
startActivity(ic); 

但是,這只是打開其他應用程序不包含文件。我嘗試了幾種組合並使用Google搜索,但沒有找到任何內容。也許它不被支持。

+0

正如下面的答案所示,在使用其他應用程序時,您必須知道一些實現細節,通常在Manifest文件中的信息(啓動器活動,支持的操作)。如果您不知道這些信息,則無法使用第三方應用程序。試着詢問「Archdroid」的開發者。 – Laviniux

回答

0

我會建議嘗試ACTION_VIEW而不是ACTION_SEND。事情是這樣的:

Uri data = Uri.fromFile(file); 
PackageManager pm = getApplicationContext().getPackageManager(); 
Intent ic = pm.getLaunchIntentForPackage("org.ais.archidroid"); 
ic.setAction(Intent.ACTION_VIEW); 
ic.setData(data); 
startActivity(ic); 
+0

它也不起作用。 – Carlos

0

嘗試設置也該應用程序的發射活動,您尋找:

Intent intent= new Intent("org.ais.archidroid.launcheractivity"); 
intent.setClassName("org.ais.archidroid", "launcheractivity"); 
intent.setData(Uri.parse(yourdata)); 
startActivity(intent); 

但只要確保,你輸入其的packageName和類名吧...希望這會有所幫助。

相關問題