我正在开发一个Android应用程序。
我的目标:
如果用户在SDCard(或)保管箱(或)电子邮件等内的任何文件夹中打开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();
}
}
}
我需要的是什么:
我只获得了pdf文件的路径。如果我想获取doc,ppt和xls文件的路径,我需要在AndroidManifest.xml中添加什么内容?
我在互联网上搜索过。但我没有得到任何明确的文件(或)教程。 有人可以帮我这样做吗?
答案 0 :(得分:1)
为其他文件类型添加与pdf相同的intent-filter条目。
<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>