2013-04-16 80 views
0

我正在開發一個Android應用程序。如何將電子郵件附件加載到我的應用程序?

我已經在的Manifest.xml添加一些設置如下。

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="application/pdf" /> 
    <data android:mimeType="text/html" /> 
    <data android:mimeType="text/htm" /> 
</intent-filter> 

然後,用戶可以選擇我的應用程序來打開附件。

的問題是,我能在那之後呢? 如何訪問該文件?

回答

2

您會收到您聲明此過濾器的活動的意圖。然後,獲取您打開的文件的URI:

Intent intent = getIntent(); 
Uri uri = intent.getData(); 

此URI可能指向PDF文件。你可以閱讀這個文件是這樣的:

ContentResolver cr = getContentResolver(); 
InputStream is = cr.openInputStream(uri); 

如果你在直接訪問文件interessed,我建議你從輸入流中寫自己的文件,因爲這個URI可能不一定解析爲一個真正的文件,如果確實如此,您可能沒有權限閱讀它。下面是關於這種情況下,提供進一步的解釋了一個問題:

Retrieve file path from caught DownloadManager intent

+0

我不能讓他叫**文件f =新的文件(新的URI(uri.toString()))文件實例; ** 。我得到一個運行時異常,指出「java.lang.IllegalArgmentException:URI中的預期文件模式:content:// ...」。 –

+0

請在這裏發佈'uri.toString()'的值。 –

+0

打開與電子郵件:內容://com.android.email.attachmentprovider/1/121/RAW –

相關問題