Android区分系统应用和安装应用
16lz
2021-01-23
获取全部包信息:
[java] view plain copy print ?- /**
- *
- * 获取系统中的全部包信息
- *
- * @param context 应用上下文
- *
- */
- private void getPackageInfos(Context context) {
- PackageManager pm = context.getPackageManager();
- List
packageInfos = pm.getInstalledPackages(0); - for (PackageInfo packageInfo : packageInfos) {
- ApplicationInfo applicationInfo = packageInfo.applicationInfo;
- String packageName = packageInfo.packageName;
- if (isSystemApp(applicationInfo)) {
- Log.i("弗洛拉鲜花", "系统应用:" + packageName);
- } else {
- Log.i("弗洛拉鲜花", "安装应用:" + packageName);
- }
- }
/** * * 获取系统中的全部包信息 * * @param context 应用上下文 * */ private void getPackageInfos(Context context) {PackageManager pm = context.getPackageManager();List packageInfos = pm.getInstalledPackages(0);for (PackageInfo packageInfo : packageInfos) {ApplicationInfo applicationInfo = packageInfo.applicationInfo;String packageName = packageInfo.packageName;if (isSystemApp(applicationInfo)) {Log.i("弗洛拉鲜花", "系统应用:" + packageName);} else {Log.i("弗洛拉鲜花", "安装应用:" + packageName);}}}
方法1:
[java] view plain copy print ?- /**
- *
- * 判断是否为系统应用程序
- *
- * @param appInfo 应用程序
- *
- * @return
- *
- */
- @SuppressWarnings("static-access")
- private boolean isSystemApp(ApplicationInfo appInfo) {
- return (appInfo.flags & appInfo.FLAG_SYSTEM) > 0;
- }
/** * * 判断是否为系统应用程序 * * @param appInfo 应用程序 * * @return * */@SuppressWarnings("static-access")private boolean isSystemApp(ApplicationInfo appInfo) { return (appInfo.flags & appInfo.FLAG_SYSTEM) > 0;}
方法2: [java] view plain copy print ? - /**
- *
- * 判断是否为系统应用程序
- *
- * @param appInfo 应用程序
- *
- * @return
- *
- */
- private boolean isSystemApp(ApplicationInfo appInfo) {
- /**
- * uid是应用程序安装时由系统分配(1000 ~ 9999为系统应用程序保留)
- */
- return appInfo.uid > 1000;
- }
更多相关文章
- android sdcard存储方案(基于fuse文件系统):之一
- Android系统信息查看方法
- Android应用程序获取ROOT权限代码
- android系统常用Uri
- Android跳转系统联系人界面插入联系人 传真\地址\邮箱\职位\
- Android应用程序键盘(Keyboard)消息处理机制分析(23)
- android 系统各种属性的获取