我正在嘗試創建一種文件管理器,以允許用戶將文件(從文件管理器)上傳到Internet。什麼樣的意圖用於選擇應用程序,以及如何聽它?
我想了解這個應用程序將如何觸發。
例如: 當使用Gmail並按下添加附件按鈕時,Android向我顯示兩個應用程序(Gallery和FileExpert)從中選擇內容。
- 這是如何完成的?
- 什麼樣的意圖是brodacasted(如果意圖被使用)?
- 通過按下添加附件按鈕,Gallery和FileManager可以調用 的對象是什麼類型?
我正在嘗試創建一種文件管理器,以允許用戶將文件(從文件管理器)上傳到Internet。什麼樣的意圖用於選擇應用程序,以及如何聽它?
我想了解這個應用程序將如何觸發。
例如: 當使用Gmail並按下添加附件按鈕時,Android向我顯示兩個應用程序(Gallery和FileExpert)從中選擇內容。
你是正確的,這是使用意圖實現。特別是,調用應用程序(例如Gmail)會發送一個上傳一個或多個文件的意圖。選擇一個文件的意圖是Intent.ACTION_GET_CONTENT。
要將您的應用程序添加到處理此意圖的應用程序列表中,您需要在清單中指定它。據this documentation,它會是這個樣子:
<activity android:name=".ui.MyActivity" >
<intent-filter>
<action android:name="android.intent.action.ACTION_GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
謝謝,我認爲這是正確的方向! –
看到下面的代碼片段
ArrayList<Uri> uris = new ArrayList<Uri>();
File fileToEmail=new File("FIle Path");
Uri updf = Uri.fromFile(fileToEmail);//adding pdf uri
uris.add(updf);
final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("image/*");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, caseObj.getCaseTitle());
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("mailto:"));
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
activity.startActivity(Intent.createChooser(emailIntent,"Send mail..."));
@PSoftware Sainath謝謝你,但我想有一個描述的行爲,當用戶點擊Gmail上的添加附件時,我的應用程序被調用 –
ok你想顯示FIle Explorer類的東西。 。? –
我們可以這麼說... –
你可以簡單地調用上下文菜單中點擊連接按鈕後... – Piyush
@Piyush古普塔謝謝你,但我想有一個行爲作爲一個描述,當用戶點擊Gmail上的添加附件時,我的應用程序被調用。 –
是的......我明白了......就像在某些情況下,當我們在設備上運行應用程序,並且如果進程正在同一項目中使用,那麼在點擊應用程序中的任何按鈕後,它將打開帶有兩個應用程序名稱的上下文菜單...不是嗎??? – Piyush