获取手机安装的所有app列表

“`

//主页面

public class MainActivity extends ActionBarActivity {
private ListView lv;
private List lists;
private MyAdapter adapter;
// private OnAppClickListener mAppClickedCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// mAppClickedCallback = (OnAppClickListener) MainActivity.this;

    lv = (ListView) findViewById(R.id.lv);
    lists = new ArrayList<PInfo>();
    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
    for (int i = 0; i < packs.size(); i++) {
        PackageInfo p = packs.get(i);

        PInfo newInfo = new PInfo();

        newInfo.setVersionName(p.versionName);
        newInfo.setVersionCode(p.versionCode);
        newInfo.setpName(p.packageName);
        newInfo.setAppName(p.applicationInfo.loadLabel(getPackageManager())
                .toString());
        newInfo.setIcon(p.applicationInfo.loadIcon(getPackageManager()));
        if ((p.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {

            lists.add(newInfo);
        }
    }
    adapter = new MyAdapter(this, lists);
    lv.setAdapter(adapter);
    adapter.notifyDataSetChanged();

    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub

// Intent intent = new Intent();
// intent = MainActivity.this.getPackageManager()
// .getLaunchIntentForPackage(
// lists.get(position).getpName());
// startActivity(intent);
// Intent intent=new Intent(MainActivity.this,Setting.class);
// startActivity(intent);

        }
    });

}

}

“//适配器
public class MyAdapter extends BaseAdapter {
private Context context;
private List lists;

public MyAdapter(Context context, List<PInfo> lists) {
    super();
    this.context = context;
    this.lists = lists;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return lists.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return lists.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

@SuppressLint("NewApi")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder viewHolder = null;

    if (convertView == null) {
        viewHolder = new ViewHolder();
        convertView = LayoutInflater.from(context).inflate(R.layout.item,
                null);
        viewHolder.iv = (ImageView) convertView.findViewById(R.id.iv);
        viewHolder.tv = (TextView) convertView.findViewById(R.id.tv);
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
    PInfo pInfo = lists.get(position);
    String appName = pInfo.getAppName();
    Drawable icon = pInfo.getIcon();
    viewHolder.iv.setBackground(icon);
    viewHolder.tv.setText(appName);
    return convertView;
}

class ViewHolder {

    ImageView iv;
    TextView tv;
}

}

`
//实体类
public class PInfo {
private String appName;
private String pName;
private String versionName;
private int versionCode;
private Drawable icon;
public Drawable getIcon() {
return icon;
}

public void setIcon(Drawable icon) {
    this.icon = icon;
}

public String getAppName() {
    return appName;
}

public void setAppName(String appName) {
    this.appName = appName;
}

public String getpName() {
    return pName;
}

public void setpName(String pName) {
    this.pName = pName;
}

public String getVersionName() {
    return versionName;
}

public void setVersionName(String versionName) {
    this.versionName = versionName;
}

public int getVersionCode() {
    return versionCode;
}

public void setVersionCode(int versionCode) {
    this.versionCode = versionCode;
}

}
`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值