Android(安卓)下载APP完成后,打开APP完成安装。
16lz
2021-01-26
业务逻辑:在工作种遇到这种需求,就是打开第三APP。
但是这个时候要确保这个APP有没有在本地TV上。所以,就要 检测有没安装,没有安装就下载安装。
1,检测 APP 是否安装。
/** * 检测 APP是否已安装。 * * @param context 当前上下文 * @param packageName 包名 * @return */public static boolean isAvilible(Context context, String packageName) { final PackageManager packageManager = context.getPackageManager(); List packageInfos = packageManager.getInstalledPackages(0); List packageNames = new ArrayList(); if (packageInfos != null) { for (int i = 0; i < packageInfos.size(); i++) { String packName = packageInfos.get(i).packageName; packageNames.add(packName); } } // 判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE return packageNames.contains(packageName); }
2,
if (true != isInstallAPP) {//没有就下载 downLoadApp(‘你的下载路径’, ‘APP的名字’ + ".apk"); } else { //有的话就直接打开 PackageManager packageManager = getPackageManager(); Intent intent = packageManager.getLaunchIntentForPackage(games.get(position).getPackageName()); //com.xx.xx是我们获取到的包名 startActivity(intent); }
3,下载的代码。这里用的是OKGO框架。
/** * APP下载 * * @param url 下载路径 * @param fileName APP名字 */ public void downLoadApp(String url, final String fileName) { OkGo.get(url) .tag(this) .execute(new FileCallback(fileName) { @Override public void onStart(Request request) { super.onStart(request); Log.e("downloadProgress: ", "NONE" + Progress.NONE); showDialog(); } @Override public void onSuccess(Response response) {//sdcard/download/ 默认下载路径 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType( Uri.fromFile(new File("/mnt/sdcard/Download/" + fileName)), "application/vnd.android.package-archive"); Log.e("包路径---", "/mnt/sdcard/Download/" + fileName); hud.dismiss(); startActivity(intent);//下载完后 启动应用。 } @Override public void downloadProgress(Progress progress) { super.downloadProgress(progress);// dialog.setPRo((int) progress.fraction); } @Override public void onFinish() { super.onFinish(); } }); }
记个笔记,防止忘记。
更多相关文章
- android sdk 让SDK Manager来自动安装上面下载的文件
- android SDK安装问题
- [置顶] android Listview分批加载+自动加载(改进版)(附源码下载)
- Android(安卓)Studio安装使用教程
- Android断点续传原理
- Android开发之
- Android下载apk文件并安装
- 课程实践 1: 制作第一个 Android(安卓)App
- android学习——NDK入门 windows下安装cygwin 与 Eclipse使用CDT