zoukankan      html  css  js  c++  java
  • 获取已安装程序的名字、包名

    package com.MyTask;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import android.app.Activity;
    import android.content.pm.PackageInfo;
    import android.graphics.drawable.Drawable;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;

    public class MyTask extends Activity {
        
    /** Called when the activity is first created. */
        
    private List<Map<String, Object>> data;
        Map
    <String, Object> item;
        @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            ListView list 
    = (ListView) findViewById(R.id.listbody); 
            data 
    = new ArrayList<Map<String, Object>>();
            listPackages();
            SimpleAdapter adapter 
    = new SimpleAdapter(this, data,
                    R.layout.list_main, 
    new String[] {"appname","pname" }, new int[] {
                     R.id.list_name, R.id.list_size, });
                  list.setAdapter(adapter);

        }
        
    class PInfo {     
            
    private String appname = "";     
            
    private String pname = "";     
            
    private String versionName = "";     
            
    private int versionCode = 0;     
            
    private Drawable icon;     
            
    private void prettyPrint() {     
                Log.i(
    "taskmanger",appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t");     
            }     
        } 
        
    private void listPackages() {     
            ArrayList
    <PInfo> apps = getInstalledApps(false); /* false = no system packages */     
            
    final int max = apps.size();     
            
    for (int i=0; i<max; i++) {     
                apps.get(i).prettyPrint();   
                item 
    = new HashMap<String, Object>();
                item.put(
    "appname", apps.get(i).appname);
                item.put(
    "pname", apps.get(i).pname);
                data.add(item);     
            }     
        }   
        
    private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {     
            ArrayList
    <PInfo> res = new ArrayList<PInfo>();             
            List
    <PackageInfo> packs = getPackageManager().getInstalledPackages(0);     
            
    for(int i=0;i<packs.size();i++) {     
                PackageInfo p 
    = packs.get(i);     
                
    if ((!getSysPackages) && (p.versionName == null)) {     
                    
    continue ;     
                }     
                PInfo newInfo 
    = new PInfo();     
                newInfo.appname 
    = p.applicationInfo.loadLabel(getPackageManager()).toString();     
                newInfo.pname 
    = p.packageName;     
                newInfo.versionName 
    = p.versionName;     
                newInfo.versionCode 
    = p.versionCode;     
                newInfo.icon 
    = p.applicationInfo.loadIcon(getPackageManager());  
                res.add(newInfo);     
            }     
            
    return res;      
        }    



    }
  • 相关阅读:
    二维数组最大关联子数组
    四则运算(终极版)
    最大子数组
    四则运算(三) 记录日志
    四则运算(三)
    四则运算记录日志
    四则运算(二)
    简单web四则运算出题
    Daily Scrum
    Daily Scrum
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1730399.html
Copyright © 2011-2022 走看看