最近做的项目比较大,所以甲方决定由我们公司和第三方公司合作开发,进而引发了一些集成的问题。由于入口在我们这边,所以当时给出的评估
初步评估考虑集成两种方案。
第一:安装第三方app,但是不显示对方的appicon,调起的时候直接传对应的user即可
第二:集成第三方的代码,即第三方公司打出一个aar包,项目引用
综合两种方案,进行过对比很明显,相对于第一种方案,第二种方案更麻烦,因为集成的话,首先会牵扯到对方的jar包,与现有代码引起冲突的可能性还是非常大的,另外还要整合对方的application对app进行初始化配置等等。而第一种情况则不存在这个问题,直接调起即可。
只需要知道要打开的app 的包名以及启动Activity即可,当然还需要定好传的字段。如果手机中安装的有对应的app,直接打开,没有安装的话直接调用下载即可,参考代码如下:
Intent intent1= new Intent();
ComponentName cn = new ComponentName("包名", "首个activity");
intent1.setComponent(cn);
intent1.setAction("android.intent.action.MAIN");
intent1.putExtra("user",GCApplication.getLocalUser());
try {
startActivityForResult(intent1, RESULT_OK);
} catch (Exception e) {
// Toast.makeText(getApplicationContext(),
// "没有该子APP,请下载安装",Toast.LENGTH_SHORT).show();
Intent intent2 = new Intent(); intent2.setAction("android.intent.action.VIEW");
Uri content_url = Uri.parse("下载链接");
intent22.setData(content_url);
startActivity(intent22);
}
对于接收方的代码也比较简单:
直接通过Intent接收值的方式接收数据即可,而对于图片则更好处理只需要把启动Activity中的
<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
注释掉即可。