package org.altbeacon.beacon.utils;
import android.app.ActivityManager;
import android.content.Context;
import android.support.annotation.NonNull;
/**
* Created by dyoung on 3/10/17.
*
* Internal class used to determine current process state in multi-process setups
* @hide
*/
public class ProcessUtils {
Context mContext;
public ProcessUtils(@NonNull Context context) {
mContext = context;
}
public String getProcessName() {
ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) {
if (processInfo.pid == getPid()) {
return processInfo.processName;
}
}
return null;
}
public String getPackageName() {
return mContext.getApplicationContext().getPackageName();
}
public int getPid() {
return android.os.Process.myPid();
}
public boolean isMainProcess() {
return (getPackageName().equals(getProcessName()));
}
}