在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;
}
}
这样就完毕了对应的工作。
在Android手机上获取其它应用的包名及版本的更多相关文章
- Android 在Android手机上获取其他应用的包名及版本号
获取Android手机上其他应用的包名及版本号方法有很多,可以通过AAPT从APK包中直接获取,也可以通过代码在手机上获取.显然,对于产品或者用户来说要获取这些信息,在手机上获取更为简便. 下面我们来 ...
- Android 手机上获取手机当前上网IP地址
[转] 原文 Android 手机上获取手机当前上网IP地址 (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手 ...
- Android 手机上获取物理唯一标识码[转]
所有添加有谷歌账户的设备可以返回一个 ANDROID_ID 所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添 ...
- Android 手机上获取物理唯一标识码
唯一标识码这东西在网络应用中非常有用,例如检测是否重复注册之类的. import android.provider.Settings.Secure;private String android_id ...
- Mac上查看当前安卓手机上打开的app的包名和主程序入口
1.连接上手机,数据线链接或者无线连接随便 2.打开你需要查看的app 3.打开终端,输入命令: adb shell dumpsys window w |grep \/ |grep name=
- Android Studio上修改项目(module)的包名(Package Name)
当你对着包名右击,查找Refactor(重构)下的Rename(快捷键:SHIFT+F6)时,弹出来的仅仅是包名最后一个路径的名称,如下图: 但你往往希望修改整个包名,比如exmple,所以你需要以下 ...
- 如何在 Android 手机上实现抓包?
如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么.网上的教程太复杂,不想麻烦.有 ...
- Android 手机上安装并运行 Ubuntu 12.04
ubuntu.sh脚本的原地址变动了,导致下载不了,现在更新了网盘地址.小技巧:遇到一些下载失效的时候可以试一试p2p下载工具(如 easyMule.迅雷等)试一试,说不定有人分享过~* —————— ...
- xe5 android 手机上使用sqlite [转]
在android手机上怎样使用sqlite数据库,这里用Navigator实现 增删改查. 1.新建firemonkey mobile application 2.选择blank applicatio ...
随机推荐
- utf8字节
<pre name="code" class="html">[root@wx03 0724]# perl a1.pl 112 [root@wx03 ...
- Eddy's爱好(dfs+容斥)
Eddy's爱好 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- Android创建启动画面
每一个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO.公司的LOGO或者开发人员信息.假设应用程序启动时间比較长,那么启动界面就是一个非常好的东西,能够让用户耐心等待这 ...
- N皇后( DFS,推荐)
N皇后问题 Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任 ...
- javascript面向对象——继承
javascript和其他语言相比,它没有真正意义上的继承,也不能从一个父类extends,要实现它的继承可以通过其他方式来实现: 步骤:1.继承父类的属性 2.继承父类的原型 下面就以一个拖拽为例子 ...
- currentStyle和getComputedStyle的兼容写法
今天学习javascript的时候,教程中介绍了一种简单实现jQuery 中css()方法的写法 <!DOCTYPE html> <html lang="en"& ...
- iPhone开发技巧之日志保存教程
http://mobile.51cto.com/iphone-283337.htm Objective-C开发程序的时候,有专门的日志操作类NSLog,它将指定的输出到标准的错误输出上(stderr) ...
- 测试css2.1选择器IE6/7/8支持情况,属性选择器/子元素/相邻
环境 xp ie 8 , ietester <!doctype html> <html> <head> <meta charset="utf-8&q ...
- js Function 加不加new 详解
以下来自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new The new operato ...
- asp.net上传控件使用
protected void Button1_Click(object sender, EventArgs e) { string str = ""; if (FileUpload ...