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


    转载请注明出处: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;
    		}
    
    		@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;
    		}
    
    	}

    这样就完毕了对应的工作。

  • 相关阅读:
    自动控制基础MATLAB 2
    钽电容和瓷片电容的对比
    自动控制原理基础 matlab 1
    Altium使用总结1
    Altium 各个层的作用
    C语言联合体的灵活运用
    windows清除日志
    Lingo 优化实例 出版社问题
    Lingo 0-1规划
    用CMD分类
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5150828.html
Copyright © 2020-2023  润新知