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

來源:互聯網
上載者:User

標籤:android   style   blog   http   java   color   

轉載請註明出處:http://blog.csdn.net/jason_src/article/details/37757661


擷取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;}@Overridepublic int getCount() {return allProcess.size();}@Overridepublic HashMap<String, Object> getItem(int position) {return allProcess.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic 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;}}

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.