关于android 应用中安装另一个应用 打开另一个应用 判断另一个应用是否安装
来源:互联网 发布:jdk 8u5 windows i586 编辑:程序博客网 时间:2024/06/06 14:42
转自:http://blog.csdn.net/jiaruoranshuai/article/details/48677375
1.在一个安卓应用中安装另一个android应用
Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(tempApk),"application/vnd.android.package-archive");intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setClassName("com.android.packageinstaller", "com.android.packageinstaller.PackageInstallerActivity");ctx.startActivity(intent);
2.获取一个apk文件的包名
PackageManager pm = context.getPackageManager();PackageInfo info = pm.getPackageArchiveInfo(Constant.DOWNLOAD_DIR + "/" + functionalls.get(i).getId() + ".apk", PackageManager.GET_ACTIVITIES);//第一个参数是apk文件的路径ApplicationInfo appInfo = null;if (info != null) { appInfo = info.applicationInfo; String packageName = appInfo.packageName; }
3.启动另一个android应用(需要知道包名)
private void doStartApplicationWithPackageName(String packagename) { // 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等 PackageInfo packageinfo = null; try { packageinfo = context.getPackageManager().getPackageInfo(packagename, 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } if (packageinfo == null) { return; } // 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(packageinfo.packageName); // 通过getPackageManager()的queryIntentActivities方法遍历 List<ResolveInfo> resolveinfoList = context.getPackageManager() .queryIntentActivities(resolveIntent, 0); ResolveInfo resolveinfo = resolveinfoList.iterator().next(); if (resolveinfo != null) { // packagename = 参数packname String packageName = resolveinfo.activityInfo.packageName; // 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname] String className = resolveinfo.activityInfo.name; // LAUNCHER Intent Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); // 设置ComponentName参数1:packagename参数2:MainActivity路径 ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); startActivity(intent); }}
4.判断一个apk文件是否已经安装成功(根据报名判断该应用是否已经成功安装)
private boolean isAppInstalled(String packageName){ PackageManager pm = context.getPackageManager(); boolean installed =false; try{ pm.getPackageInfo(uri,PackageManager.GET_ACTIVITIES); installed =true; }catch(PackageManager.NameNotFoundException e){ installed =false; } return installed;}
0 0
- 关于android 应用中安装另一个应用 打开另一个应用 判断另一个应用是否安装
- 在一个应用中判断是否安装另一个app
- Android应用打开另一个应用程序
- Android应用打开另一个程序
- 代码打开另一个应用
- Android 从一个应用打开另一个应用
- 在一个应用中打开另一个应用
- iOS应用中打开另一个应用
- Android中从一个应用打开另一个应用中的Activity
- Android启动另一个应用
- Android启动另一个应用
- Android应用启动另一个应用
- 在当前应用中启动另一个已安装的应用
- 在一个应用中启动另一个已安装的应用
- android检测手机是否有某个应用以及启动安装另一个应用的问题
- Android 项目中打开另一个应用、软件重启
- Android 一个应用中启动另一个已安装的应用的方法
- 在一个应用中打开另一个本地应用
- Java(集合类)第一部分(List)
- day22AWT窗口布局
- C++中引用、指针与const之间的爱恨情愁
- arm电子相册项目——项目要求篇(描述功能)
- 19.Linux:VMWare虚拟机非正常关闭后无法启动的解决方案 (转载)
- 关于android 应用中安装另一个应用 打开另一个应用 判断另一个应用是否安装
- android 环境安装、helloworld demo 创建运行
- 2016年-年中总结
- 整理的一些笔记
- 母函数求组合情况模板
- 手动安装tcpdump
- C#入门10.7——本章小结及任务实施
- hadoop调度器总结
- 武器的练习4Tank