您的位置:首页 > 移动开发

两个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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: