Как получить имя файла из намерения? - PullRequest
14 голосов
/ 04 июня 2010

Это мой файл манифеста. После использования фильтра намерений я загружаю файл 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 ]

27 голосов
/ 04 июня 2010
Intent intent = getIntent();                
String name = intent.getData().getPath();

Строковое имя будет содержать выбранный вами путь к файлу, по этому пути вы можете прочитать свой файл

12 голосов
/ 04 августа 2010

Обратите внимание, что

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

дает вам закодированную строку, например, пробел в имени файла кодируется как "% 20". Если вы хотите открыть файл, вы должны использовать

intent.getData().getPath()

вместо.

1 голос
/ 01 ноября 2013
Intent intent = getIntent();
String name = intent.getData().getLastPathSegment();
1 голос
/ 04 июня 2010

Вы можете получить имя файла с помощью intent.getData ().

...