2012-09-14 17 views
1

這可能看起來是重複的,但我認爲我已經嘗試了大多數沒有成功發佈的解決方案。如何在電子郵件應用程序中使用我的應用程序打開附件? (mime類型,意圖過濾器...)

我寫在某個時候通過電子郵件與自定義擴展(名爲.xyz)

然後我需要從電子郵件應用程序打開此文件發送文件的應用程序,我不能使它發揮作用。

在閱讀了本站和其他人的很多帖子後,我想出了一個意圖過濾器,允許我從文件資源管理器(而不是電子郵件應用程序)打開這些文件。

<intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 
       <data android:scheme="file" android:host="*" 
        android:pathPattern=".*\\.xyz"/> 
</intent-filter> 

然後我試圖打開電子郵件和Web瀏覽器內的附件,並沒有奏效。 (該文件被下載,但後來我無法打開它)。 我在logcat的

09-14 12:30:50.516: D/DownloadManager(2341): android.content.ActivityNotFoundException: 
    No Activity found to handle Intent 
{ act=android.intent.action.VIEW 
dat=file:///mnt/sdcard/download/samplefile.xyz 
typ=message/rfc822 flg=0x10000000 } 

雖然我覺得很奇怪使用RFC822 MIME類型文件得到這個錯誤,我改變了意圖過濾器,並添加

android:mimeType="message/rfc822" 

的數據部分。

然後,我可以在從瀏覽器下載文件後打開文件,但無法再從文件資源管理器中打開該文件(這很有道理)。

即使加入android:mimeType =「/」也有同樣的效果。 (從ASTRO文件資源管理器中看到的文件的MIME類型爲空)。

但我真正需要的是從電子郵件應用程序打開文件,這些方法都沒有幫助。打開電子郵件時我甚至不能點擊附件。

我可能需要創建一個自定義MIME類型,但我一直無法找到如何去做。

所以,問題是,我需要做什麼來打開電子郵件附件(從內置的電子郵件應用程序)與我的應用程序?

  • 創建一個MIME類型? (如果是這樣,怎麼辦?)
  • 創建一個內容提供者?
  • 都是? (再次,如何?)

回答

1

爲了以防萬一,有人遇到同樣的問題,我終於能夠使它工作。 我遇到的問題是,當使用附件發送電子郵件時,我使用的MIME類型爲「message/rfc822」。將它改爲「image/xyz」的技巧並且當然使用了將MIME類型設置爲「*/*」的意圖過濾器。

發送電子郵件時存在一種不同的行爲,並且您可以爲每個可以發送的應用程序選擇一個選擇器,而不僅僅是郵件應用程序(MMS,WhatsApp,藍牙......),但在我的情況下,這沒問題。

相關問題