Closed LIUPING789 closed 1 year ago
// 包名判断是否为主进程
public static boolean isMainProcess(Context context) {
if (context == null) {
return false;
}
return context.getPackageName().equals(getCurrentProcessName(context));
}
// 获取当前进程名
public static String getCurrentProcessName(Context context) {
if (context == null) return "";
int pid = android.os.Process.myPid();
String processName = "";
ActivityManager manager = (ActivityManager) context.getSystemService(
Context.ACTIVITY_SERVICE
);
for (ActivityManager.RunningAppProcessInfo process : manager.getRunningAppProcesses()) {
if (process.pid == pid) {
processName = process.processName;
}
}
return processName;
}
对应工具类中的方法
这个调用应该是在 隐私协议同意之前掉的吧,也就是在PrivacySentry.Privacy.updatePrivacyShow()之前调用,原因是这个类里的getRunningAppProcesses方法做了拦截
好的,已解决。
现象:如果加了以上库,会影响之前主线程的判断,不加没有问题。
判断主线程代码如下:
if (ProcessUtil.isMainProcess(DemoApplication.getContext())) { //do in something
}