2010-06-04 85 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();