1.创建工具类

  1. public class AppInfo {  
  2.     public String appName = "";  
  3.     public String packageName = "";  
  4.     public String versionName = "";  
  5.     public int versionCode = 0;  
  6.     public Drawable appIcon = null;  
  7.     public Context context;  
  8.  
  9.     public AppInfo(Context context) {  
  10.         this.context = context;  
  11.     }  
  12.  
  13.     /**  
  14.      * 获取非系统应用  
  15.      */ 
  16.  
  17.     public ArrayList<AppInfo> getAppInfo() {  
  18.         ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); // 用来存储获取的应用信息数据    
  19.         List<PackageInfo> packages = context.getPackageManager()  
  20.                 .getInstalledPackages(0);  
  21.         for (int i = 0; i < packages.size(); i++) {  
  22.             PackageInfo packageInfo = packages.get(i);  
  23.             if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {// 非系统应用  
  24.                 AppInfo tmpInfo = new AppInfo(context);  
  25.                 tmpInfo.appName = packageInfo.applicationInfo.loadLabel(  
  26.                         context.getPackageManager()).toString();  
  27.                 tmpInfo.packageName = packageInfo.packageName;  
  28.                 tmpInfo.versionName = packageInfo.versionName;  
  29.                 tmpInfo.versionCode = packageInfo.versionCode;  
  30.                 tmpInfo.appIcon = packageInfo.applicationInfo.loadIcon(context  
  31.                         .getPackageManager());  
  32.                 appList.add(tmpInfo);  
  33.             } else {// 获取系统应用  
  34.  
  35.             }  
  36.         }// 好啦 这下手机上安装的应用数据都存在appList里了。  
  37.         return appList;  
  38.     }  

 

==================工具类结束,下面只需要在Activity 中调用此方法就可以了=======


2.在Activity中显示

  1. import java.util.ArrayList;  
  2.  
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.TextView;  
  6.  
  7. import com.pubukeji.www.chonghuafei.appinfo.AppInfo;  
  8.  
  9. public class InfoActivity extends Activity {  
  10.     TextView textView;  
  11.     ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); // 用来存储获取的应用信息数据    
  12.     @Override 
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         // TODO Auto-generated method stub  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.info_activity);  
  17.         AppInfo info = new AppInfo(this);  
  18.         appList = info.getAppInfo();  
  19.         StringBuffer buffer = new StringBuffer();  
  20.         for (int i = 0; i < appList.size(); i++) {  
  21.             buffer.append(appList.get(i).packageName + "\n");  
  22.         }  
  23.         textView = (TextView) findViewById(R.id.textView1);  
  24.         textView.setText(buffer);  
  25.  
  26.     }  
  27.  
  28.  
  29. }  

结果如图所示

获取安卓已安装应用程序的相关信息_获取安卓应用程序