文件系统中打开某指定类型文件时,关联并用自己的APP打开
2017-01-13 16:36
232 查看
本文根据网上的代码,自己整理
首先是关键代码,
清单文件中的配置,是主要步骤,
作用是在点击文件打开的时候,在可以选择的打开的应用列表中,添加我们自己写的应用
<data android:mimeType="video/*" />是关键代码,本文以关联视频文件为基础做的,所以是video/*
其他文件格式请自行百度,我也不清楚....
然后是activity中的代码,我们通过getintent,拿到带过来的数据
通过一通乱七八糟的解析,拿到文件的绝对路径(有错请评论纠正,谢谢),
后面的对应的操作就自己处理咯。
demo地址:http://download.csdn.net/detail/qq_24179679/9737036
首先是关键代码,
在关联文件后,需要打开的界面的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
相关文章推荐
- 编写自己的CMFCEditBrowseCtrl,实现打开指定类型的文件
- 编写自己的CMFCEditBrowseCtrl,实现打开指定类型的文件
- 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议
- 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议
- 获取指定类型文件的缺省系统关联
- 文件类型关联 单例模式 用特定程序打开指定素材
- 无法打开模块文件“C:\Users\sq\AppData\Local\Temp\.NETFramework,Version=v4.5,AssemblyAttributes.vb”:系统找不到指定的文件
- 无法打开模块文件“C:\Users\fkg\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.vb”系统找不到指定文件
- 无法打开模块文件“C:\Users\fkg\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.vb”系统找不到指定文件
- 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议
- 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议
- VC: 打开资源视图时提示“指南必须指定类型”,.rc资源文件损坏
- 未能加载文件或程序集“App_Code”或它的某一个依赖项。系统找不到指定的文件。
- vmware安装无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件
- 给自己的程序建立文件类型关联
- 20110327-8.4.2-用ofstream打开文件,要保存文件中已经存在的数据,必须显式的指定app模式打开
- VC++项目开发笔记——打开或保存指定类型的文件CFileDialog类
- 指定程序打开指定文件及启动系统设置相关界面
- 修改mac系统下某种文件类型的默认打开方式
- 其实完整的挂载命令需要指定挂载设备的文件系统类型