判断一个APP是否为系统应用
2015-07-16 17:16
477 查看
方法一:List<ProviderInfo> candidates = pm.queryContentProviders(null, 0, 0);ApplicationInfo info = null;String packageName = null;for (ProviderInfo provider : candidates){if (provider.authority != null && provider.packageName != null){packageName = provider.packageName;try {info = pm.getApplicationInfo(packageName, 0);if (provider.authority.equals(PROVIDER_AUTHORITIES) &&info != null && (info.flags & ApplicationInfo.FLAG_SYSTEM) == 1){mIsYPEnabled = true;}} catch (PackageManager.NameNotFoundException e) {mIsYPEnabled = false;}}}方法二:
public static boolean isSystemPermission(Context context, String permissionName) { boolean isSystem = false; final PackageManager pm = context.getPackageManager(); try { final PermissionInfo info = pm.getPermissionInfo(permissionName, 0); if (info != null) { final String pkgName = info.packageName; final PackageInfo pkgInfo = pm.getPackageInfo(pkgName, 0); if (pkgInfo != null) { final ApplicationInfo appInfo = pkgInfo.applicationInfo; if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { isSystem = true; } else { Log.w(TAG, String.format("Permission: %s is not owned by a system package.", pkgName)); } } } } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Unknown permission : " + permissionName); } return isSystem; }
相关文章推荐
- IOS数组NSArray与NSMutableArray知识点
- CodeForces 349D Apple Tree(树形DP)
- Android-时间轴-TimeLine
- 循环语句的小程序
- iOS如何实现国际化(本地化)
- 各电脑进Bios方法
- net.sf.json.JSONObject 和org.json.JSONObject 的差别
- 解析Android开发优化之:对Bitmap的内存优化详解
- PendingIntent源码分析
- android开发步步为营之68:Facebook原生广告接入总结
- CABasicAnimation 基本动画 分类: ios技术 2015-07-16 17:10 132人阅读 评论(0) 收藏
- Android 编程下 Touch 事件的分发和消费机制
- android定时操作
- Android视频通话Java代码
- 【原创IOS开发】swift使用SDWebImages
- Android DatePicker控件获取时间月份少1
- Android获取wifi的IP地址
- Android 签名(手势)控件
- Android 手绘 - 支持保存为图片
- Android手势源码浅析-----手势绘制(GestureOverlayView)