Android 笔记 intent打开文件的方法

打开文件

这里只介绍最基本的intent打开文件的方法

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri,"image/jpeg");
if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }

其中的第二行需要设置文件类型 也就是这里的image/jpeg
第三行再打开activity之前,需要确认是否有程序能够执行这个动作,
因为如果没有可以打开这个文件类型的程序,会导致app报错崩溃。

这就是最基本的方法。除此以外还可以添加其他功能,例如检索所有能打开此文件的app,然后手动选择用哪个打开。

Intent intentChooser = Intent.createChooser(intent,"chooser");
if (intent.resolveActivity(getPackageManager()) != null) {
         startActivity(intentChooser);
}

如上,这个新的intent是快捷创建了一个chooser,然后在startactivity里面打开这个chooser
就可以手动选择用哪个开打刚才的目标了
如果没有设置intent的action,那么就会显示所有能对这个文件类型进行操作的activity。

进一步

还可以获得每个可以打开目标的activity,然后自己创建一个view来选择

//代码以后再写

public List queryIntentActivities (Intent intent, int flags)
这个方法可以获得一个列表,里面有包含可以执行这个intent的每个activity的信息。
(返回的示resolveInfo列表,resolveInfo.activityInfo就是需要的activity信息)
包括activity的label就是标签,icon就是图标,还有packageName和name,通过后面这两个信息就可以用显示方式打开这个activity了intent.setClassName(packageName,className)

在设置intent的时候需要设置目标activity所在的context,通常调用所在app的其他activity的时候
会直接设置成this,但是调用其他app的activity的时候需要设置context,这里的便利方法
可以直接设置packageName.

get

new intent(context,class)里面的第一个参数是被调用方的context,不是调用方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值