获取已安装程序的名字、包名

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;      
    }    



}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值