插件化安装按钮显示背景修改,下载添加是否是插件字段

This commit is contained in:
huangzhuanghua
2016-09-24 15:55:03 +08:00
parent 5e44460112
commit 7da78b6e4a
26 changed files with 316 additions and 498 deletions

View File

@ -133,6 +133,70 @@ public class PackageUtils {
return null;
}
/*
* 判断是否是插件包
*/
public static boolean isSignature(Context context, String packageName) {
String signature = getApkSignatureByPackageName(context, packageName);
if (publicKey.equals(signature)) {
return true;
}
return false;
}
/**
* 根据apk路径获取apk包名、签名 根据包名 判断 是否已安装游戏 根据签名 判断 是否一致
*
* @param path apk路径
* @return true 可执行安装 false 要卸载已安装的,再执行安装
*/
public static boolean isCanLaunchSetup(Context context, String path) {
String packageName = getPackageNameByPath(context, path);
boolean isContain = isContain(context, packageName);
if (!isContain) {
return true;
}
boolean isInstalled = isInstalled(context, packageName);
if (!isInstalled) {
return true;
}
String signature = getApkSignatureByPackageName(context, packageName);
return publicKey.equals(signature);
}
/*
* 启动安装应用程序
*/
public static void launchSetup(final Context context, final String path) {
if (isCanLaunchSetup(context, path)) {
context.startActivity(PackageUtils.getInstallIntent(path));
} else {
DialogUtils.showPluginDialog(context, new DialogUtils.ConfiremListener() {
@Override
public void onConfirem() {
context.startActivity(PackageUtils.getUninstallIntent(context, path));
}
});
}
}
/*
* 获取应用第一次安装的时间
*/
public static long getInstalledTime(Context context, String packageName) {
try {
PackageInfo packageInfo = context.getPackageManager()
.getPackageInfo(packageName, 0);
return packageInfo.firstInstallTime;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return 0;
}
/*
* 解析签名
*/
@ -246,7 +310,7 @@ public class PackageUtils {
return false;
}
if (map == null) {
map = new ArrayMap<String, Boolean>();
map = new ArrayMap<>();
List<PackageInfo> infos = context.getPackageManager()
.getInstalledPackages(0);
for (PackageInfo info : infos) {