验证是否有App去接收这个Intent
2015-06-19 12:45
483 查看
尽管Android系统会确保每一个确定的intent会被系统内置的app(such as the Phone, Email, or Calendar app)之一接收,但是我们还是应该在触发一个intent之前做验证是否有App接受这个intent的步骤。
Caution: 如果触发了一个intent,而且没有任何一个app会去接收这个intent,则app会crash。
为了验证是否有合适的activity会响应这个intent,需要执行queryIntentActivities() 来获取到能够接收这个intent的所有activity的list。若返回的List非空,那么我们才可以安全的使用这个intent。例如:
如果
Note:我们必须在第一次使用之前做这个检查,若是不可行,则应该关闭这个功能。如果知道某个确切的app能够handle这个intent,我们也可以向用户提供下载该app的链接。(see how to
link to your product on Google Play).
Caution: 如果触发了一个intent,而且没有任何一个app会去接收这个intent,则app会crash。
为了验证是否有合适的activity会响应这个intent,需要执行queryIntentActivities() 来获取到能够接收这个intent的所有activity的list。若返回的List非空,那么我们才可以安全的使用这个intent。例如:
PackageManager packageManager = getPackageManager(); List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0); boolean isIntentSafe = activities.size() > 0;
如果
isIntentSafe为
true, 那么至少有一个app可以响应这个intent。
false则说明没有app可以handle这个intent。
Note:我们必须在第一次使用之前做这个检查,若是不可行,则应该关闭这个功能。如果知道某个确切的app能够handle这个intent,我们也可以向用户提供下载该app的链接。(see how to
link to your product on Google Play).
相关文章推荐
- 【PullToRefresh 系列基本用法】 Android装上拉下拉刷新控制具体的解释
- TabHost页和子Activity之间的通讯
- BitMap、Drawable、inputStream及byte[] 互转
- Android中获得上下文的静态方法
- [Android Studio 权威教程]AS构建系统-Gradle
- 微信公众平台名字修改方法
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- 微信JS-SDK之图像接口开发详解
- android 还原短信
- android 根据uri获取真实路径
- android 根据uri获取路径
- android dp和px之间转换
- android Content Provider
- Android圆形进度条控件-CircleSeekBar
- AndroidManifest.xml——compatible-screen
- Unity中的Path对应各平台中的Path
- android数据库数据变化监听
- Swift语言学习之OC和Swift混编
- iOS8 打开设置界面
- Android实现拨号器电话