插件化安装按钮显示背景修改,下载添加是否是插件字段
This commit is contained in:
@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user