启动事件添加应用安装来源信息
This commit is contained in:
@ -45,7 +45,9 @@ import java.security.cert.CertificateFactory;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
@ -158,6 +160,42 @@ public class PackageUtils {
|
||||
return getMetaData(HaloApp.getInstance().getApplication(), packageName, "gh_id");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Map<String, String> getSideLoadedInfo() {
|
||||
Context context = HaloApp.getInstance().getApplicationContext();
|
||||
|
||||
String packageName = null;
|
||||
try {
|
||||
final PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
|
||||
final PackageManager packageManager = context.getPackageManager();
|
||||
|
||||
if (packageInfo != null && packageManager != null) {
|
||||
packageName = packageInfo.packageName;
|
||||
|
||||
// getInstallSourceInfo requires INSTALL_PACKAGES permission which is only given to system
|
||||
// apps.
|
||||
final String installerPackageName = packageManager.getInstallerPackageName(packageName);
|
||||
|
||||
final Map<String, String> sideLoadedInfo = new HashMap<>();
|
||||
|
||||
if (installerPackageName != null) {
|
||||
sideLoadedInfo.put("is_side_loaded", "false");
|
||||
// could be amazon, google play etc
|
||||
sideLoadedInfo.put("installer_store", installerPackageName);
|
||||
} else {
|
||||
// if it's installed via adb, system apps or untrusted sources
|
||||
sideLoadedInfo.put("is_side_loaded", "true");
|
||||
}
|
||||
|
||||
return sideLoadedInfo;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Utils.log(e.getLocalizedMessage());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 判断是否是插件包
|
||||
|
||||
Reference in New Issue
Block a user