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

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

在Android手机上获取其它应用的包名及版本的更多相关文章

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

    获取Android手机上其他应用的包名及版本号方法有很多,可以通过AAPT从APK包中直接获取,也可以通过代码在手机上获取.显然,对于产品或者用户来说要获取这些信息,在手机上获取更为简便. 下面我们来 ...

  2. Android 手机上获取手机当前上网IP地址

      [转] 原文              Android 手机上获取手机当前上网IP地址                (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手 ...

  3. Android 手机上获取物理唯一标识码[转]

    所有添加有谷歌账户的设备可以返回一个 ANDROID_ID 所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添 ...

  4. Android 手机上获取物理唯一标识码

    唯一标识码这东西在网络应用中非常有用,例如检测是否重复注册之类的. import android.provider.Settings.Secure;private String android_id ...

  5. Mac上查看当前安卓手机上打开的app的包名和主程序入口

    1.连接上手机,数据线链接或者无线连接随便 2.打开你需要查看的app 3.打开终端,输入命令: adb shell dumpsys window w |grep \/ |grep name=

  6. Android Studio上修改项目(module)的包名(Package Name)

    当你对着包名右击,查找Refactor(重构)下的Rename(快捷键:SHIFT+F6)时,弹出来的仅仅是包名最后一个路径的名称,如下图: 但你往往希望修改整个包名,比如exmple,所以你需要以下 ...

  7. 如何在 Android 手机上实现抓包?

    如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么.网上的教程太复杂,不想麻烦.有 ...

  8. Android 手机上安装并运行 Ubuntu 12.04

    ubuntu.sh脚本的原地址变动了,导致下载不了,现在更新了网盘地址.小技巧:遇到一些下载失效的时候可以试一试p2p下载工具(如 easyMule.迅雷等)试一试,说不定有人分享过~* —————— ...

  9. xe5 android 手机上使用sqlite [转]

    在android手机上怎样使用sqlite数据库,这里用Navigator实现 增删改查. 1.新建firemonkey mobile application 2.选择blank applicatio ...

随机推荐

  1. 复习知识点:GCD多线程

    GCD的基础 #pragma mark - 使用GCD 创建一个 串行 队列 // 第一种:系统提供的创建串行队列的方法 // 在真正的开发中如果需要创建串行队列,比较习惯用这种 // dispatc ...

  2. [Android] 文件夹下文件的个数限制

    Android机子的文件夹下有存放文件的个数限制,做了下测试,如下: 在创建第65534个文件时抛出了异常: java.io.IOException: open failed: ENOSPC (No ...

  3. ubuntu ???????????? no permissions 问题解决

    近期的一个项目须要用到linux开发android程序! 发现ubuntu有小米开发连接不上!  搞了一个下午才搞成功! 看看吧! 小米手机利用USB连接到Ubuntu 10.04系统.执行以下的命令 ...

  4. MDK常见错误详解集合

    错误代码及错误信息 错误释义 error 1: Out of memory 内存溢出 error 2: Identifier expected 缺标识符 error 3: Unknown identi ...

  5. Web Deploy发布网站一条龙解决方案

    Web Deploy工具对于ASP.NET开发人员来说一定不陌生,没有用过也经常见到,Web Deploy发布十分方便而且在发布时会帮助用户检验发布文件的正确性.接下来介绍一下基础使用. 第一步:安装 ...

  6. 新安装的linux(linux mint 或则ubuntu)系统中安装postgresql-xc安装的包

    一:./configure的时候1,gcc的处理:sudo apt-get install clang && rvm install 1.9.3 --with-gcc=clang2,缺 ...

  7. Tomcat日志catalina.out文件过大的处理方法

    原文地址:http://lcbk.net/tomcat/1396.html 我们知道一般企业使用Tomcat 作为Web端时,它产生的日志会越来越大,特别是catalina.out这个日志文件,然而有 ...

  8. Oracle修改字段长度以及计算天数

    sql修改字段长度的语法: alter table 表名 modify 字段名 字段类型; sql修改字段长度的示例代码 alter table qtline modify qtl_bidernote ...

  9. tomcat编译通过问题

    tomcat  编译后 的类 和 网站目录不能同名!

  10. c# 数据库编程(通过SqlCommand 执行DML语句)

    原来一直是java,python等语言,最近用c#语言,并编写数据库访问代码.使用了之后,这里总结下,分享下c#如何操作数据库. 在java等其它语言中,有一套标准的api来完成数据库访问,并且一般都 ...