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

    }

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM