Android 在Android手機上擷取其他應用的包名及版本號碼

來源:互聯網
上載者:User

標籤:code   cat   代碼   log   直接   err   map   load   ati   

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

這樣就完成了相應的工作。

Android 在Android手機上擷取其他應用的包名及版本號碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.