Android官方培训课程学习(五): 与其他应用交互
来源:互联网 发布:mac 无线鼠标 编辑:程序博客网 时间:2024/05/16 12:42
验证是否有App去接收这个Intent
尽管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;
如果isIntentSafe为true, 那么至少有一个app可以响应这个intent。false则说明没有app可以handle这个intent。
Note:我们必须在第一次使用之前做这个检查,若是不可行,则应该关闭这个功能。如果知道某个确切的app能够handle这个intent,我们也可以向用户提供下载该app的链接。
显示分享App的选择界面
请注意,当以startActivity()的形式传递一个intent,并且有多个app可以handle时,用户可以在弹出dialog的时候选择默认启动的app(通过勾选dialog下面的选择框,如上图所示)。该功能对于用户有特殊偏好的时候非常有用(例如用户总是喜欢启动某个app来查看网页,总是喜欢启动某个camera来拍照)。
然而,如果用户希望每次都弹出选择界面,而且每次都不确定会选择哪个app启动,例如分享功能,用户选择分享到哪个app都是不确定的,这个时候,需要强制弹出选择的对话框。(这种情况下用户不能选择默认启动的app)。
为了显示chooser, 需要使用createChooser()来创建Intent
Intent intent = new Intent(Intent.ACTION_SEND);...// Always use string resources for UI text. This says something like "Share this photo with"String title = getResources().getText(R.string.chooser_title);// Create and start the chooserIntent chooser = Intent.createChooser(intent, title);startActivity(chooser);
这样就列出了可以响应createChooser()中Intent的app,并且指定了标题。
- Android官方培训课程学习(五): 与其他应用交互
- Android利用Intent与其他应用交互
- android与其他应用的交互
- 【Android training】与其他应用交互 Intent
- android 与其他程序交互(一)
- 与其他应用交互 Intent
- Android官方培训课程学习(一): 兼容不同设备
- Android官方培训课程学习(四): 数据存储
- Android官方培训课程中文版
- Android官方培训课程中文版
- Android官方培训课程中文版
- Android官方培训中文课程
- Android官方培训课程中文版
- Android官方培训课程中文版
- 跟着Android官方培训课程学习,挖坑填坑记录
- Android官方培训课程学习(六): Android分享简单数据
- 1.7_Android Training 学习笔记_与其他应用的交互
- Android官方培训课程学习(二): 管理activity的生命周期
- Java中关于File的操作
- Centos搭建SVN 服务器
- C++设计模式之工厂模式
- mini2440 UART Print实验
- C语言的简单介绍
- Android官方培训课程学习(五): 与其他应用交互
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- 关于Genymotion 启动后 Android studio 找不到设备的问题
- 当Kali Rolling作为笔记本唯一一个系统
- 类似弹簧跳动的动画效果
- Linux下 目录/usr缩写 及 目录结构说明
- Android AutoLayout全新的适配方式 堪称适配终结者
- Okhttp 加载图片
- Linux常用命令(一)