码迷,mamicode.com
首页 > 移动开发 > 详细

验证是否有App去接收这个Intent

时间:2016-05-24 19:03:39      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

尽管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。例如:

PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;

如果isIntentSafetrue, 那么至少有一个app可以响应这个intent。false则说明没有app可以handle这个intent。

我们必须在第一次使用之前做这个检查,若是不可行,则应该关闭这个功能。如果知道某个确切的app能够handle这个intent,我们也可以向用户提供下载该app的链接。

验证是否有App去接收这个Intent

标签:

原文地址:http://www.cnblogs.com/guojing1991/p/5524392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!