您的位置:首页 > 移动开发 > Android开发

Android区分系统应用和安装应用

2012-12-24 09:16 381 查看
获取全部包信息:

[java]
view plaincopyprint?

/**
*
* 获取系统中的全部包信息
*
* @param context 应用上下文

*
*/
private void getPackageInfos(Context context) {

PackageManager pm = context.getPackageManager();

List<PackageInfo> 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<PackageInfo> 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 plaincopyprint?

/**
*
* 判断是否为系统应用程序
*
* @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 plaincopyprint?

/**
*
* 判断是否为系统应用程序
*
* @param appInfo 应用程序
*
* @return
*
*/
private boolean isSystemApp(ApplicationInfo appInfo) {

/**
* uid是应用程序安装时由系统分配(1000 ~ 9999为系统应用程序保留)

*/
return appInfo.uid > 1000;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: