2010-06-04 65 views
13

這是我的清單文件。使用意向過濾器後,我從郵件附件下載ics文件。當我打開下載的文件時,它啓動我的應用程序。我需要在我的應用程序中獲取所選文件的文件名和數據。我應該在清單和java文件中做什麼。我很新的android可以任何人幫助我嗎?如何從意圖獲取文件名?

<application android:label="@string/app_name" android:icon="@drawable/icsicon"> 
    <activity android:name=".setMIMEfile" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="*/*" /> 
     <data android:pathPattern=".*\\.ics" />  
    </intent-filter> 
</activity> 

回答

24
Intent intent = getIntent();     
String name = intent.getData().getPath(); 

字符串名稱將包含您所選擇的文件的路徑,從該路徑您可以讀取文件

+0

清單中應該如何處理所有類型的文件? – 2015-09-24 11:18:23

1

您可以使用intent.getData()獲取文件名。

+0

如何授權用戶訪問mainfeast中的文件? 以及如何獲取文件名 – Sumithran 2010-06-04 07:08:19

+0

謝謝您的回覆。我收到了文件路徑 – Sumithran 2010-06-04 09:59:33

12

注意

Intent intent = getIntent(); 
String name = intent.getData().getEncodedPath(); 

給你一個編碼字符串,例如文件名中的空格被編碼爲「%20」。如果你想打開文件,你必須使用

intent.getData().getPath() 

改爲。

1
Intent intent = getIntent(); 
String name = intent.getData().getLastPathSegment();