记录下,省得自己忘记!
Activity:获取调用者的包名
private String getAppId() {
try {
Class activityClass = Class.forName("android.app.Activity");
Field field= activityClass.getDeclaredField("mReferrer");
field.setAccessible(true);
String appId= (String) field.get(MainActivity.this);
return appId;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return "";
}
Activity:获取调用者的包名
只有调用着使用startActivityforResult才有效
String packageName = activity.getCallingPackage();Service:获取调用者的包名
getPackageManager().getNameForUid(Binder.getCallingUid());
具有系统权限的app得到的值为1000
其他app获取的是包名