在当前app直接启动另一个app
来源:互联网 发布:传奇引擎全套源码 编辑:程序博客网 时间:2024/06/06 15:47
对于android中的跨进程间通信 大家肯定都有了解:
Activity 、AIDL 、BroadcastReceiver、ContentProvider 都可进行实现通信
而今天要说的是 从当前app 直接去启动另一个app 的某个界面
首先:最容易想到的是 广播
然而:亲测 接收广播的app在被kill后 会收不到广播
这时,可直接使用Activity进行启动:
1. 要判断应用是否存在:
/** * 根据包名判断应用是否存在 * @param context * @param packageName * @return */private boolean isAvilible(Context context, String packageName){ final PackageManager packageManager = context.getPackageManager();//获取packagemanager List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息 List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名 //从pinfo中将包名字逐一取出,压入pName list中 if(pinfo != null){ for(int i = 0; i < pinfo.size(); i++){ String pn = pinfo.get(i).packageName; pName.add(pn); } } Log.e("有没有安装该程序",""+pName.contains(packageName)); return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE}
2.判断后 进行界面的启动:
boolean b = isAvilible(model.getContext(),"myapp.first.myapplication2");Log.e("是否已安装该程序",""+b);if (b){ Intent i = new Intent(); ComponentName cn = new ComponentName("myapp.first.myapplication",// 应用包名 "myapp.first.myapplication.ui.MainActivity");// 要启动的activity 的全类名 i.setComponent(cn);// 给Initent设置组件 model.getContext().startActivityForResult(i, RESULT_OK);// 我的是mvp 所以上下文是这样的 需根据你自己的进行修改}else { Log.e("没有安装该程序","");}
//未安装,可跳转至market下载该程序 Uri uri = Uri.parse("market://details?id=com.skype.android.verizon");//id为包名 Intent it = new Intent(Intent.ACTION_VIEW, uri);model.getContext().startActivity(it);
//未安装时,也可弹个对话框 提示一下然后让用户去下载
0 0
- 在当前app直接启动另一个app
- Android 在App中启动另一个App
- 跨应用启动(在一个APP里启动另一个APP)
- 一个app启动另一个app
- 通过APP启动另一个App
- 怎么通过代码在一个App当中启动另一个App
- Android在一个APP中启动另一个APP
- android开发之在一个APP启动另一个APP
- 在App中启动另一个App的实现方式
- 安卓在一个APP中打开启动另一个APP
- Android启动另一个app
- Android 启动另一个APP
- 一个app中启动另一个app
- Android 一个app启动另一个app
- Android 一个app启动另一个app
- Android 一个app启动另一个app
- 如何让一个APP启动另一个APP
- Android 一个app启动另一个app
- shell find 命令的用法
- UIImagePickerController从拍照、图库、相册获取图片
- myeclipse+maven实现多模块项目struts+spring+mybatis
- C++中的数组长度
- 【玲珑学院OJ1065】Just for Fun(模拟)
- 在当前app直接启动另一个app
- UML学习(三)-----序列图
- 数据算法——大数据算法
- ios 时间戳 NSString转NSDate转long
- 百度地图信息框增加按钮事件
- Maven最佳实践:划分模块
- maven管理多模块系统
- UML学习(四)-----状态图
- 谈入职一年感想