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();
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手机上获取其他应用的包名及版本号的更多相关文章
- 在Android手机上获取其它应用的包名及版本
转载请注明出处:http://blog.csdn.net/jason_src/article/details/37757661 获取Android手机上其它应用的包名及版本方法有非常多,能够通过AAP ...
- Mac上查看当前安卓手机上打开的app的包名和主程序入口
1.连接上手机,数据线链接或者无线连接随便 2.打开你需要查看的app 3.打开终端,输入命令: adb shell dumpsys window w |grep \/ |grep name=
- Android 手机上获取手机当前上网IP地址
[转] 原文 Android 手机上获取手机当前上网IP地址 (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手 ...
- android 解决小米手机上选择照片路径为null情况
昨天测试帅哥说他手机选择图库崩溃了,这是一个上传头像的功能,相信很多应用都有这个功能,于是我就把手机拿过来打log看了下返回的路径 为null,在网上搜索了下解决方案,现在把解决方案记录下: 这是在o ...
- 获取软件的apk包名、查看手机设备名称等
获取软件的apk包名 1.下载aapt,这里使用的是SDK自带的aapt,找到SDK路径下面的aapt.exe,本机路径:E:\downloads\android-sdk_r23.0.2-window ...
- 通过PHP怎样取到android系统下apk应用的包名,版本号等信息
公司项目关系,要求在通过PHP解析android系统应用apk包内的一切可用的信息.比如说:APK包名,版本号,版本名,安装权限等一系列关于对应包的信息.通过google查找相关的解决方案,都没有找到 ...
- Android 校验apk文件渠道号、包名、版本号
功能:可查看单个或目录下所有apk文件的渠道号.包名.版本号 下载地址:http://download.csdn.net/detail/zgz345/9248487使用:以查看包名.版本号为例 1.c ...
- 获取安卓应用APK包名的方法
应用商店按照符合Android标准的原则进行设计,使用包名(Package Name)作为应用的唯一标识.即:包名必须唯一,一个包名代表一个应用,不允许两个应用使用同样的包名.包名主要用于系统识别应用 ...
- 如何获取到app的包名
相信很多朋友在刚开始接触测试app的时候都不清楚app的包名是什么,接下来给大家介绍几种方法去获取. 一.手机设备已连接到电脑,点击进入app中,前提是电脑上装备了android-SDK,tools文 ...
随机推荐
- 使用Ant打包Android应用具体解释
计划写个完整的使用Ant打包Android应用的系列文章.三篇文章.首篇具体介绍採用Ant打包Android应用的流程.列出部分定制问题及其解决方法,第二篇介绍我理解的Ant打包的思路与主要的概念和使 ...
- java中log日志的使用(完全版)
Commons_logging包 Apache通用日志包 他为Log4JLogger:NoOpLog:LogKitLogger:Jdk14Logger:AvalonLogger提供了一共通用的接口进行 ...
- Synergy 共享键盘和鼠标
直接安装Synergy 不行的话加配置文件 ➜ ~ cat synergy.conf section: screens lab712-PC: ckboss-HP: end section: links ...
- 137.CPP自带异常
#include <iostream> #include <exception> using namespace std; //继承自带的异常 class sizeerror ...
- CCS+C6678LE开发记录11:多核协作(IPC)入门
为更好地发挥C6678的多核性能,需要用到多核协作.幸运的是,我们可以使用官方提供的IPC模块. IPC=Inter-Processor Communication, 核间通信,粗略来说就是多核之间进 ...
- 用latex写简历
最近终于逐渐掌握了用Latex写中文简历的问题.首先就是必须基于交大前辈bin yuan的模板进行学习. 如果有了一般论文撰写和Beamer做PPT的经验,不难发现resume的模板也是遵循一套程式的 ...
- Android APP 调试过程中遇到的问题。
调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Andro ...
- SpringCloud学习笔记(7)----Spring Cloud Netflix之负载均衡-Ribbon的深入理解
1. 注解@LoadBalanced 作用:识别应用名称,并进行负载均衡. 2. 入口类:LoadBalancerAutoConfiguration 说明:类头上的注解可以知道Ribbon 实现的负载 ...
- 正则表达式中的/i
i = insensitive means case-insensitive 表示大小写不敏感
- [HDU5688]2016"百度之星" - 资格赛 Problem D
题目大意:给你n个字符串,如果一个字符串可以通过重新排列变成另一个字符串,则认为这两个字符串相等.每输入一个字符串,输出这个字符串和与它相等的之前出现了几次. 解题思路:我们可以用map保存一个字符串 ...