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

古人已用三冬足,年少今开万卷余。这篇文章主要讲述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; }}

【Android 在Android手机上获取其他应用的包名及版本号】这样就完成了相应的工作。

    推荐阅读