启动Intent之前先检查是否有合适的接收者
2019独角兽企业重金招聘Python工程师标准>>>
有这么一种情况,当我们的App需要使用到拍照功能时,通常我们可以调用其他有拍照功能的App,而不需要自己实现,如果你对照片的要求不是很高的话,简单的几行代码就可以搞定:
private void takePictureIntent(int actionCode) {Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(takePictureIntent, actionCode);
}
但是还有个问题需要考虑,如果用户的手机没有拍照功能怎么办呢(当然当下这种情况很少),除了这个问题另外一种情况是用户的手机拍照功能损坏了怎么办呢?这时候我们可以在启动Intent之前先进行检查是否有合适的App能接收Intent的请求,这样不仅是对用户的友好,也是为了防止App意外崩溃的情况出现。检查代码如下:
public static boolean isIntentAvailable(Context context, String action) {final PackageManager packageManager = context.getPackageManager();final Intent intent = new Intent(action);List<ResolveInfo> list =packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);return list.size() > 0;
}
OK,Try it yourself!
转载于:https://my.oschina.net/javaTechLover/blog/341670
启动Intent之前先检查是否有合适的接收者相关推荐
- 探索Activity之启动Intent Flag和taskAffinity
引用上文生命周期和launchMode介绍, Activity的生命周期实际上比我们想象的复杂得多. 本文主要通过实例, 来探索下Activity的启动Intent Flag以及taskAffinit ...
- 1、Apache启动失败,请检查相关配置。√MySQL5.1已启动。解决方案:
问题: 1.Apache启动失败,请检查相关配置.√MySQL5.1已启动. 今天使用APMServ5.2.6在本地电脑架设网站,不论是改端口还是关闭SSL都无法启动Apache. 研究了好久终于解决 ...
- apache启动失败_请检查相关配置.√mysql5.1已启动._1、Apache启动失败,请检查相关配置-百度经验...
前几天电脑系统崩溃了,后边到服务中心重新恢复了系统,但是回来使用APMServ 5.2.6发现:1.Apache启动失败,请检查相关配置.√MySQL5.1已启动. 系统的各种服务我都检查过了,都是正 ...
- 方式SingleTask 启动Intent设置 不能如愿打开需要的Activity
问题解决记录: 环境:APP主界面的启动方式SingleTask. 当主界面在前台的时候,全局Application接收到广播,打开SingleTask本APP语音通话界面,一切操作正常. 问题出现: ...
- android intent actionview,android – 检查Intent.ACTION_VIEW上的用户操作
正如Android Developer在 Activities上所写 In other protocols (such as ACTION_MAIN or ACTION_VIEW), you may ...
- apmserv mysql5.1启动失败_APMServ Apache启动失败及MySQL5.1启动失败,请检查相关配置 解...
出现这个问题从网上查了查主要有以下原因: 1.注意目录文件不能含有中文(这个比较常见). 2.去掉ssl的勾试试 3.80端口被占用=>改端口,如8080或81 [或者找到My sql安装目录下 ...
- 解决docker容器因报错无法启动的问题,检查、修复容器错误并重启
问题复现 使用: sudo docker ps -a 查看当前的docker容器: 我们想启动name为[docker-mongo]的这个容器,因此要执行 sudo docker start dock ...
- Activity、Task、Application关系+Intent启动Flag
什么是Android Application? 简单来说,一个apk文件就是一个Application. 任何一个AndroidApplication基本上是由一些Activities组成,当用户与 ...
- Android使用Intent启动Service的Intent必须是显式的
今天使用Intent来启动Service时,代码如下: //为 Intent设置Action属性 intent.setAction("com.hust.service");star ...
最新文章
- mysql数据库导出后乱码问题_MySQL导入导出数据出现乱码的解决办法
- 273. 整数转换英文表示(模拟)
- 例子简单说说C# ref和out
- .NET简谈插件系统开发模式
- 老男孩和门户网站学生聊天整理
- 微信小程序数据拼接_微信小程序使用原生WebSokcet实现断线重连及数据拼接
- The New Villa
- opencv 梯度幅值_20、 OpenCV导数和梯度
- 【Lingo】线性规划
- CAD如何一键解决批量打印
- MatLab绘制直方图
- python 实验七 字典与集合 (上)
- 血仍未冷——写在37岁生日
- 智慧城市(大数据,物联网,云计算之应用)
- 学习并行计算(CUDA Python)-1-初尝试
- c语言二重指针做参数,C语言二重指针的运用
- python的意思是什么_python-x%2 == 0是什么意思?
- 黄金圈法则 Golden Circle
- 大家都在聊内卷,究竟内卷是什么意思,互联网行业真的内卷了么?
- 复制页面的html代码怎么写,网页复制不了的文字怎么办?学会这5个方法,全网文档随意复制...