List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
虽然,有些代码号称可以过滤掉系统自身的应用程序,但是只要细看代码就会发现,好像里面的那个布尔变量没有起到什么过滤的作用。
因此,一种方法是,通过获取的安装包(包括安装的与系统自身的应用程序),对其android.content.pm.PackageInfo的packageName 进行过滤,
但是Anrodi与google的包比较容易过滤掉,但需要对不同产商进行适配;
另外一种方法是:枚举 \data\app 文件夹,其下的*.apk文件 就是本机安装的软件,而\system\App下的*.apk文件就是系统自带的软件,
由于普通的程序是无法读取这两个文件夹的,需要root权限吧,因此该方法也行不通(用File.listFiles() + android.permission.FACTORY_TEST 权限 还是不能枚举出文件)
虽然不能枚举文件夹 "\data\app\",但我们可以访问(read)文件夹"\data\app\"下的所有文件,因此可以用如下的方法来获取本机上已经安装的软件(排除系统的应用程序):
PackageManager pckMan = getPackageManager();
List<PackageInfo> packs = pckMan.getInstalledPackages(0);
count = packs.size();
String name;
int installedNum = 0;
for(int i = 0; i < count; i++) {
PackageInfo p = packs.get(i);
if (p.versionName == null)
continue;
另外,可以通过uid来过滤系统系统的安装包,因为android系统中的uid从 1000 ~ 9999 都是给系统程序保留的,所以只要判断package的uid > 10000即可判定该程序是非系统程序。
if(p.applicationInfo.uid > 10000)
//非系统程序
uid是程序在安装的时候由系统分配的。
分享到:
相关推荐
Android开发,获取当前手机安装的所有应用、根据包名获取应用信息、获取当前应用程序的包名、获取程序 图标、获取程序的版本号、获取程序的名字、获取程序的权限、获取程序的签名、获取当前包名的 SHA1、将获取到得...
1.Android中获取所有应用程序列表信息 2.Android中获取系统应用程序列表信息 3.Android中获取第三方应用程序列表信息 4.Android中获取第三方应用程序列表信息
android程序,获取所有应用程序的数据。
获取手机上android应用程序的权限列表,在打印log里,log的TAG是jishen
电脑上有腾讯管家,作为安卓开发,用真机测试的比较多,鄙人算一个,不喜欢用应用宝,当你卸载了应用宝之后,插上USB,有时候就回静默安装应用宝,然后弹出应用宝获取什么什么权限,特别烦 手机在没有安装应用宝...
Android中获取正在运行的应用程序-----ActivityManager的使用(二)
在Android设备中,按Back键会将当前的Activity出栈销毁,而按HOME键却会将之隐藏到...如若有多个这样的程序这样操作,我们不知道后台到底有多少个正在运行的应用程序。此程序的目的就列举出后台正在运行的应用列表。
让我们将您的网站和Web应用程序转换为Android应用程序。此应用程序模板支持各种Web应用程序/网站(包括HTML,PHP,WordPress,Progressive Web Apps,HTML 5 Games,WiX,Jimdo,apprat.io,bubble,Webflow,...)...
Android应用源码(精)记事本小程序,加注释,适合阅读.rar Android应用源码Android平台下通过HTTP协议实现断点续传下载.rar Android应用源码Hibernate4Android.rar Android应用源码http、udp、tcp网络交互组件.rar ...
在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收...
android实在获得root权限应用静默安装
通过queryIntentActivities()方法,使用PackageManager,获取应用程序的信息使用
无线传书,使你的手机通过wifi网络与电脑相连,让你能够在电脑上管理你手机中的文件,向手机传送文件,或从手机中获取文件。 无线传书,是一条隐形的,虚拟的数据线。 无线传书,界面简洁直接,操作简单,能够让你...
android获取应用程序信息小Demo。应用名称,版本,缓存大小,应用程序大小等
一个简单案例,可获取android系统所有应用程序列表,实现点击列表中的某一项,打开相应的应用
android开发之获取到应用程序的版本号以及应用的其他信息。博客详细介绍:http://blog.csdn.net/qq_21376985/article/details/51034060
android如何获取正在运行的应用程序,因为在framework中想添加这个功能,所以写了个appliction来实现一下获取正在运行的应用程序
本教程介绍如何在 Eclipse 环境中进行 Android 应用程序开发,包括两个示例应用程序。第一个示例是一个基本的应用程序,涉及构建和调试的所有阶段。第二个应用程序示例涉及比较复杂的 Android 特性,包括联系人搜索...
Android系统采用一种称为Surface的UI架构为应用程序提供用户界面。在Android应用程序中,每一个Activity组件都关联有一个或者若干个窗口,每一个窗口都对应有一个Surface。有了这个Surface之后,应用程序就可以在...
Android中使用Intent获取其他应用程序信息的方法介绍.pdf 学习资料 复习资料 教学资源