两个APP之间怎么调用《IT蓝豹》
2015-11-24 11:47
393 查看
两个app之间怎么调用?
(1):通过显示Intent 启动
首先:配置好B app 的action,即AndroidManifest.xml中声明
<intent-filter>
<action android:name="com.itlanbao.app.MainActivity"/>
</intent-filter>
A app 调用需要知道B app对应的action
通过如下方法调用:
Intent Intent = new Intent();
intent.setClassName("com.itlanbao.app", "com.itlanbao.app.MainActivity");
startActivity(intent);
(2):隐式的Intent来启动方式
比如调用打电话功能:
1.Uri number = Uri.parse("tel:5551234");
2.Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
浏览网页:
Uri webpage = Uri.parse("http://www.android.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
此外,我们在定义我们的Intent的时候,要尽可能的详细,例如我们希望调用系统的图片查看器浏览图片,我们应该定义MIME type" image/*.",以防止会启动map app进行查看。而且如果没有app来响应我们的请求,我们的app就会崩溃。
因此为了防止我们的app发送intent没有其他app来响应而导致应用异常退出,我们在发送intent前进行验证。为了验证是否有app的
Activity来响应我们的Intent请求,我们需要调用queryIntentActivities()来进行验证。这个方法会返回一个list,
我们通过判断list是否为空来验证,这样我们可以安全的使用Intent来实现不同App之间Activity的交互。如果没有响应的Acitivty
来响应,我们可以提供一些链接给用户进行下载安装
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;
文章来自IT蓝豹,感谢原创作者的辛勤付出!
请转发标明出处:www.itlanbao.com
(1):通过显示Intent 启动
首先:配置好B app 的action,即AndroidManifest.xml中声明
<intent-filter>
<action android:name="com.itlanbao.app.MainActivity"/>
</intent-filter>
A app 调用需要知道B app对应的action
通过如下方法调用:
Intent Intent = new Intent();
intent.setClassName("com.itlanbao.app", "com.itlanbao.app.MainActivity");
startActivity(intent);
(2):隐式的Intent来启动方式
比如调用打电话功能:
1.Uri number = Uri.parse("tel:5551234");
2.Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
浏览网页:
Uri webpage = Uri.parse("http://www.android.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
此外,我们在定义我们的Intent的时候,要尽可能的详细,例如我们希望调用系统的图片查看器浏览图片,我们应该定义MIME type" image/*.",以防止会启动map app进行查看。而且如果没有app来响应我们的请求,我们的app就会崩溃。
因此为了防止我们的app发送intent没有其他app来响应而导致应用异常退出,我们在发送intent前进行验证。为了验证是否有app的
Activity来响应我们的Intent请求,我们需要调用queryIntentActivities()来进行验证。这个方法会返回一个list,
我们通过判断list是否为空来验证,这样我们可以安全的使用Intent来实现不同App之间Activity的交互。如果没有响应的Acitivty
来响应,我们可以提供一些链接给用户进行下载安装
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;
文章来自IT蓝豹,感谢原创作者的辛勤付出!
请转发标明出处:www.itlanbao.com
相关文章推荐
- Android四大基本组件详解
- iOS -switch函数中的case,初始化视图时需要加“{}”
- 两个APP之间怎么调用---IT蓝豹
- iOS 开发AFNetWorking 请求,返回错误
- 微信公众平台上传图片,自动回复图片
- Android 利用剪切板(clipboardManager )实现数据传递
- Android seekbar样式介绍
- zabbix实现微信报警
- IOS9中打开另一个App
- Android中线程间的通信
- swift类
- android WebView
- Android webview和js的相互调用
- Android测试教程5--模拟键盘输入
- Android进程间通信机制——Binder学习
- Github项目解析(一)-->上传Android项目至github
- IOS7、8模态半透明弹出框
- 国内android aosp源代码下载方法
- iOS开发 -- 数组去重+排序的方法
- Android 各种make命令