您的位置:首页 > 移动开发

文件系统中打开某指定类型文件时,关联并用自己的APP打开

2017-01-13 16:36 232 查看
本文根据网上的代码,自己整理

首先是关键代码,

在关联文件后,需要打开的界面的activity,配置如下信息

然后在activity里面   添加如下代码
public class MainActivity extends Activity {

private String SdPath;
private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.Text);
SdPath = Environment.getExternalStorageDirectory().getAbsolutePath();
String result = getOpenFilePath(getIntent());
if (TextUtils.isEmpty(result)) {
textView.setText("没有打开文件或者打开出错");
}else {
textView.setText("你选择的文件是:" + result);
}
}

private String getOpenFilePath(Intent intent){
String result = "";
if (intent.getAction().equals("android.intent.action.VIEW")) {//是从对应的action中来的
String data = intent.getData().toString();
if (!TextUtils.isEmpty(data) && data.contains(SdPath)) {//地址信息不为空并且是SD卡中的文件
String[] urls = data.split(SdPath);
if (urls.length > 1) {
String filePath = data.replace(urls[0], "");//去掉文件头   files://
System.out.println("Path = " + filePath);
File file = new File(filePath);
if (file.exists()) {
System.err.println("判断正确 ===== " + file.getAbsolutePath());
result = file.getAbsolutePath();
}
}
}
}
return result;
}
}


清单文件中的配置,是主要步骤,

作用是在点击文件打开的时候,在可以选择的打开的应用列表中,添加我们自己写的应用

<data android:mimeType="video/*" />是关键代码,本文以关联视频文件为基础做的,所以是video/*

其他文件格式请自行百度,我也不清楚....

然后是activity中的代码,我们通过getintent,拿到带过来的数据

通过一通乱七八糟的解析,拿到文件的绝对路径(有错请评论纠正,谢谢),

后面的对应的操作就自己处理咯。

demo地址:http://download.csdn.net/detail/qq_24179679/9737036
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐