2013-08-22 14 views
2

我正在嘗試創建一種文件管理器,以允許用戶將文件(從文件管理器)上傳到Internet。什麼樣的意圖用於選擇應用程序,以及如何聽它?

我想了解這個應用程序將如何觸發。

例如: 當使用Gmail並按下添加附件按鈕時,Android向我顯示兩個應用程序(Gallery和FileExpert)從中選擇內容。

  • 這是如何完成的?
  • 什麼樣的意圖是brodacasted(如果意圖被使用)?
  • 通過按下添加附件按鈕,Gallery和FileManager可以調用 的對象是什麼類型?
+0

你可以簡單地調用上下文菜單中點擊連接按鈕後... – Piyush

+0

@Piyush古普塔謝謝你,但我想有一個行爲作爲一個描述,當用戶點擊Gmail上的添加附件時,我的應用程序被調用。 –

+0

是的......我明白了......就像在某些情況下,當我們在設備上運行應用程序,並且如果進程正在同一項目中使用,那麼在點擊應用程序中的任何按鈕後,它將打開帶有兩個應用程序名稱的上下文菜單...不是嗎??? – Piyush

回答

2

你是正確的,這是使用意圖實現。特別是,調用應用程序(例如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> 
+0

謝謝,我認爲這是正確的方向! –

0

看到下面的代碼片段

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..."));   
+0

@PSoftware Sainath謝謝你,但我想有一個描述的行爲,當用戶點擊Gmail上的添加附件時,我的應用程序被調用 –

+0

ok你想顯示FIle Explorer類的東西。 。? –

+0

我們可以這麼說... –

相關問題