• Android 在Android手机上获取其他应用的包名及版本号


    获取Android手机上其他应用的包名及版本号方法有很多,可以通过AAPT从APK包中直接获取,也可以通过代码在手机上获取。显然,对于产品或者用户来说要获取这些信息,在手机上获取更为简便。

    下面我们来看下如何在手机上获取其他应用的包名、版本号。

    核心:通过PackageManager可以获取到我们想要的信息,例如:程序图标、程序名称、包名、VersionName、VersionCode等。

        /*
         * @Author Sun Ruichuan
         * */
        public ArrayList<HashMap<String, Object>> getItems(Context context) {
            PackageManager pckMan = context.getPackageManager();
            ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String, Object>>();
            List<PackageInfo> packageInfo = pckMan.getInstalledPackages(0);
            for (PackageInfo pInfo : packageInfo) {
                HashMap<String, Object> item = new HashMap<String, Object>();
                item.put("appimage", pInfo.applicationInfo.loadIcon(pckMan));
                item.put("packageName", pInfo.packageName);
                item.put("versionCode", pInfo.versionCode);
                item.put("versionName", pInfo.versionName);
                item.put("appName", pInfo.applicationInfo.loadLabel(pckMan).toString());
                items.add(item);
            }
            return items;
        }

    在获取到所需要的信息后即可将这些信息放入到自定义的ListAdaptar里。

    class MyAdapter extends BaseAdapter {
    
            public class Holder {
                TextView tv_pakagename;
                TextView tv_versioncode;
                TextView tv_versionname;
                TextView tv_appname;
                ImageView iv_logo;
            }
    
            @Override
            public int getCount() {
                return allProcess.size();
            }
    
            @Override
            public HashMap<String, Object> getItem(int position) {
                return allProcess.get(position);
            }
    
            @Override
            public long getItemId(int position) {
                return position;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
    
                Holder holder;
                View v;
    
                if (convertView == null) {
                    holder = new Holder();
                    v = LayoutInflater.from(getApplicationContext()).inflate(
                            R.layout.list_menu, null);
    
                    holder.tv_pakagename = (TextView) v
                            .findViewById(R.id.tv_pakagename);
                    holder.tv_versioncode = (TextView) v
                            .findViewById(R.id.tv_versioncode);
                    holder.tv_versionname = (TextView) v
                            .findViewById(R.id.tv_versionname);
                    holder.iv_logo = (ImageView) v.findViewById(R.id.iv_logo);
                    holder.tv_appname = (TextView) v.findViewById(R.id.tv_appname);
                    v.setTag(holder);
                } else {
                    v = convertView;
                    holder = (Holder) v.getTag();
                }
    
                holder.tv_pakagename.setText("包名:"
                        + allProcess.get(position).get("packageName").toString());
                holder.tv_versioncode.setText("VersionCode:"
                        + allProcess.get(position).get("versionCode").toString());
                holder.tv_versionname.setText("VersionName:"
                        + allProcess.get(position).get("versionName").toString());
                holder.iv_logo.setImageDrawable((Drawable) allProcess.get(position)
                        .get("appimage"));
                holder.tv_appname.setText("App名称:"
                        + allProcess.get(position).get("appName").toString());
    
                return v;
            }
    
        }

    这样就完成了相应的工作。

  • 相关阅读:
    第11条:谨慎地覆盖clone
    第10条:始终要覆盖toString
    第9条:覆盖equals时总是覆盖hashCode
    第8条:覆盖equals时请遵守通用约定
    第7条:避免使用终结方法
    第6条:消除过期的对象引用
    第5条:避免创建不必要的对象
    第4条:通过私有构造器来强化不可实例化能力
    第3条:用私有构造器或者枚举类型强化Singleton属性
    第2条:遇到多个构造器参数时要考虑用构建器
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7389643.html
Copyright © 2020-2023  润新知