最近工作中遇到,判断APP包名然后设置不同的浏览器,这个时候就需要获取ApplicationInfo信息的info,来做一个判断了, 1.如果所在的类有上下文的话(没有就从别的地方传递一个过来,通过接口以及其它的方式) context.getPackageManager().getApplicationInfo("com.包名", 0); 来获取 2.如果所在类中有ApplicationInfo 的话, //xx或xx
ApplicationInfo info = impl.getPackageManager().getApplicationInfo("com.包名", 0);
3.所在类可以获取PackageManagerService的话,通过PackageManagerService获取application,
PackageManagerService managerService = (PackageManagerService) ServiceManager.getService("package");
ApplicationInfo info = managerService.getApplicationInfo("com.包名",0,0);
以上三种方式任意一种获取了applicationInfo后,做是否是系统app的校验,就把这个info传递到isSystemApp()方法里做个判断就OK了
private static boolean isSystemApp(ApplicationInfo info) {
return (info.flags & ApplicationInfo.FLAG_SYSTEM) > 0;
}
好的,介绍完毕
|