爱玺玺

爱玺玺的生活日记本。wx:lb87626

android判断是系统程序还是应用程序

package cn.jianhaozhan.engine;


import java.util.ArrayList;

import java.util.List;


import android.content.Context;

import android.content.pm.ApplicationInfo;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.graphics.drawable.Drawable;

import cn.jianhaozhan.bean.AppInfo;


public class AppEngine {

   public static List<AppInfo> getAppInfos(Context context){

   List<AppInfo> listAppInfos=new ArrayList<AppInfo>();

   //获取应用程序信息

   PackageManager pm=context.getPackageManager();

   List<PackageInfo> list=pm.getInstalledPackages(0);

   for (PackageInfo packageInfo : list) {

  //获取包名

   String packageName=packageInfo.packageName;

   String versionName=packageInfo.versionName;

   ApplicationInfo applicationInfo=packageInfo.applicationInfo;

   Drawable icon=applicationInfo.loadIcon(pm);//获取图标

   String name=applicationInfo.loadLabel(pm).toString();//获取应用程序名称

   //是否是用户程序

   boolean isUser;

   int flags=applicationInfo.flags;//获取应用程序相关信息,是否是系统程序,是否安装在SD卡

   if((applicationInfo.FLAG_SYSTEM & flags)==applicationInfo.FLAG_SYSTEM){

   //系统程序

   isUser=false;

   }else{

   isUser=true;

   }

   boolean isSD;

   //是否安装到SD卡

   if ((applicationInfo.FLAG_EXTERNAL_STORAGE&flags)==applicationInfo.FLAG_EXTERNAL_STORAGE) {

  isSD=true;

   }else{

  isSD=false;

   }

   //添加到bean中

   AppInfo appInfo=new AppInfo(name, icon, packageName, versionName, isSD, isUser);

   listAppInfos.add(appInfo);

   }

   return listAppInfos;

   }

}


发表评论:

Powered By Z-BlogPHP 1.4 Deeplue Build 150101

Copyright Your WebSite.Some Rights Reserved.

蜀ICP备11021721号-5