从意图中获取文件名的方法?

14

这是我的清单文件。在使用意图过滤器后,我从邮件附件下载了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>
4个回答

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

字符串变量name将包含你选择的文件路径,通过该路径你可以读取该文件。


我应该在清单文件中做些什么才能接收所有类型的文件? - android developer

13
请提供需要翻译的具体内容,谢谢!
Intent intent = getIntent();
String name = intent.getData().getEncodedPath();

给你一个编码的字符串,例如文件名中的空格被编码为“%20”。如果你想打开这个文件,你必须使用

intent.getData().getPath()

改为使用“instead”。


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

1

你可以使用intent.getData()获取文件名。


如何给用户权限访问主文件中的文件? 以及如何获取文件名。 - Sumithran
1
谢谢您的回复。我已经得到了文件路径。 - Sumithran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接