Android APP 检测安装打开 APK 三步操作
本文介绍 Android APP 检测、安装、打开 APK,三步操作,分别是:检查 APP 是否已经安装,安装已经下载好的 APK,打开已经安装的 APK。
1、检查 APP 是否已经安装
/**
* 检查 APP 是否已经安装
* @param context
* @param packagename 需求检查的 APP 包名
* @return 没有安装返回 false,已经安装返回 true
*/
private boolean isAppInstalled(Context context, String packagename) {
PackageInfo packageInfo;
try {
packageInfo = context.getPackageManager().getPackageInfo(packagename, 0);
} catch (NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if(packageInfo == null) {
//System.out.println("没有安装");
return false;
} else {
//System.out.println("已经安装");
return true;
}
}
2、安装已经下载好的 APK
/**
* 安装 APK
* @param info
*/
private void install(String apkname) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
String url = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + Environment.DIRECTORY_DOWNLOADS + apkname);
File file = new File(url);
if(file.exists()) {
intent.setDataAndType(Uri.fromFile(new File(url)), "application/vnd.android.package-archive");
context.startActivity(intent);
} else {
// 安装包已经删除请重新下载
}
} catch (Exception e) {
// TODO: handle exception
}
}
3、打开已经安装的 APK
/**
* 打开已经安装好的 APK
* @param url 文件路径
*/
private void openApk(String url) {
try {
PackageManager manager = context.getPackageManager();
// 这里的是你下载好的文件路径
PackageInfo info = manager.getPackageArchiveInfo(url, PackageManager.GET_ACTIVITIES);
if (info != null) {
Intent intent = manager.getLaunchIntentForPackage(info.applicationInfo.packageName);
context.startActivity(intent);
}
} catch (Exception e) {
// TODO: handle exception
}
}
(完)