Android - получить путь к файлу выбранного PDF, DOC, PPT или XLS в моем приложении
Я разрабатываю приложение для Android.
Моя цель:
Если пользователь откроет файлы pdf, doc, ppt или xls в любой папке внутри SDCard (или) Dropbox (или) электронной почты и т. Д., Он должен перейти в мое приложение (в моем приложении я сделаю некоторый процесс, основанный на файлы, которые они выбрали).
Что я сделал:
Если пользователь нажимает на файл PDF, я могу получить путь к файлу, и они переходят в мое приложение. Для этого я сделал следующий код.
Фрагмент кода:
В AndroidManifest.xml я добавил следующий код:
<activity android:name="com.openwith.OpenwithActivity" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:scheme="http" android:host="*" android:pathPattern=".*\\.pdf" />
<data android:scheme="https" android:host="*" android:pathPattern=".*\\.pdf" />
<data android:scheme="content" android:host="*" android:pathPattern=".*\\.pdf" />
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.pdf" />
</intent-filter>
</activity>
В OpenwithActivity.java
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
public class OpenwithActivity extends Activity {
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_openwith);
Intent intent = getIntent();
Uri data = intent.getData();
if (data != null) {
String filePath = data.getPath();
}
}
}
Что мне нужно:
Я получаю только путь к файлу PDF. Если я хочу получить путь к файлу doc, ppt и xls, что мне нужно добавить в AndroidManifest.xml?
Я искал в интернете. Но я не получил никаких четких документов (или) учебных пособий. Кто-нибудь может помочь мне сделать это?
1 ответ
Добавьте те же записи фильтра намерений для других типов файлов, что и для PDF-файла.
<data android:scheme="http" android:host="*" android:pathPattern=".*\\.ppt" />
<data android:scheme="https" android:host="*" android:pathPattern=".*\\.ppt" />
<data android:scheme="content" android:host="*" android:pathPattern=".*\\.ppt" />
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.ppt" />
<data android:scheme="http" android:host="*" android:pathPattern=".*\\.xls" />
<data android:scheme="https" android:host="*" android:pathPattern=".*\\.xls" />
<data android:scheme="content" android:host="*" android:pathPattern=".*\\.xls" />
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.xls" />
<data android:scheme="http" android:host="*" android:pathPattern=".*\\.doc" />
<data android:scheme="https" android:host="*" android:pathPattern=".*\\.doc" />
<data android:scheme="content" android:host="*" android:pathPattern=".*\\.doc" />
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.doc" />
И для изображений это должно сделать:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="image/*" android:scheme="http" android:host="*" />
<data android:mimeType="image/*" android:scheme="https" android:host="*" />
<data android:mimeType="image/*" android:scheme="content" android:host="*" />
<data android:mimeType="image/*" android:scheme="file" android:host="*" />
</intent-filter>