標籤: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;}}
這樣就完成了相應的工作。