Android -在我的应用程序中获取选定的pdf, doc, ppt或xls的文件路径



我正在开发一个android应用程序。

我的目标:

如果用户打开sd卡(或)dropbox(或)电子邮件等中的任何文件夹中的pdf, doc, ppt或xls文件…,他们必须导航到我的应用程序(在我的应用程序中,我会根据他们选择的文件做一些处理)。

我做了:

如果用户点击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();
            } 
        }
}

What I Need:

我只得到pdf文件的路径。如果我想要得到doc, ppt和xls文件的路径,我需要在AndroidManifest.xml中添加什么?

我已经在网上搜索过了。但我没有得到任何明确的文档(或)教程。有人能帮我做这个吗?

为其他文件类型添加与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>

相关内容

  • 没有找到相关文章

最新更新