example :
if(packageNames.length >1){
int pid = Binder.getCallingPid();
int uid = Binder.getCallingUid();
ActivityManager am = (ActivityManager)mContext.getSystemService(mContext.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
if (runningApps != null && runningApps.size() > 0) {
for (ActivityManager.RunningAppProcessInfo app : runningApps) {
if(app.pid == pid && app.uid ==uid){
packageNames[0] = app.processName;
break;
}
}
}
}
网络上的案例:
String callerPackage = getAppNameByPID(getContext(), Binder