Android通过调用外部应用打开指定文件
来源:互联网 发布:java 图片上传非jsp 编辑:程序博客网 时间:2024/05/29 09:37
设置意图Intent的Action值为ACTION_GET_CONTENT,
Cateldory为CATEGORY_OPENABLE,
Type为"*/*"指全部类型的文件。
注意这里需要动态申请读写权限
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(this,new String[]{ "Manifest.permission.WRITE_EXTERNAL_STORAGE"},1); } Intent intent=new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult(intent,1);
在startActivityForResult的回调方法中执行openFiles(Context context,Uri uri)方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Uri uri; if(resultCode== Activity.RESULT_OK){ if(requestCode==1){ uri=data.getData(); openFile(this,uri); } } }
设置意图的Flags值为FLAG_ACTIVITY_NEW_TASK,
Action的值为ACTION_VIEW,
Data为第一个Intent中获得的Uri,
最后通过Intent的静态方法createChooser(Context context,Uri,uri)弹出选择外部应用来打开该文件
public void openFile(Context context,Uri uri){ try{ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); intent.setData(/*uri*/uri); context.startActivity(intent); Intent.createChooser(intent, "请选择对应的软件打开该附件!"); }catch (ActivityNotFoundException e) { Toast.makeText(context, "sorry附件不能打开,请下载相关软件!", Toast.LENGTH_SHORT).show(); } }
阅读全文
0 0
- Android通过调用外部应用打开指定文件
- CSharp调用外部程序打开指定文件
- android 调用系统程序打开指定文件
- android 调用系统程序打开指定文件
- Android调用系统应用打开任意文件
- Android-通过意图安装、卸载、打开指定的apk和进入指定程序的应用信息
- Qt编程调用外部程序打开文件
- Qt中调用外部程序打开文件
- Qt编程调用外部程序打开文件
- Qt编程调用外部程序打开文件
- android调用外部地图应用
- 安卓 通过intent调用系统文件管理器打开指定路径目录
- Android学习之调用系统应用打开文件
- Android调用系统应用打开各种类型文件
- 设置外部连接打开android应用
- wxWidgets调用指定程序打开文件代码
- 调用Windows关联程序打开指定文件
- wxWidgets调用指定程序打开文件代码
- 数据结构二叉树操作
- Mac 配置 Git 自动补全
- 关于虚拟现实,我应该说些什么呢?
- 使用PHP轻松监控你的网站运行状态
- 如何通过技术手段 “干掉” 视频APP里讨厌的广告?
- Android通过调用外部应用打开指定文件
- HMM经典介绍论文【Rabiner 1989】翻译(九)——HMM的类型
- 微信域名是否被拦截检测
- openssl常用命令
- 泰坦尼克号生还分析数据
- 关于类中的getInstance()方法的用法和作用
- c指针
- 用阿里云国外主机搭建VPN服务
- Mybatis-insert数据返回主键id