admin管理员组文章数量:1657207
业务逻辑:在工作种遇到这种需求,就是打开第三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<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
List<String> packageNames = new ArrayList<String>();
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.<File>get(url)
.tag(this)
.execute(new FileCallback(fileName) {
@Override
public void onStart(Request<File, ? extends Request> request) {
super.onStart(request);
Log.e("downloadProgress: ", "NONE" + Progress.NONE);
showDialog();
}
@Override
public void onSuccess(Response<File> 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 下载APP完成后,打开APP完成安装。 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729776040a1212462.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论