不管是“ES文件浏览器”、“QQ”等应用,它们都可以获取本机已安装的应用程序信息,还可以发送安装包(apk文件)给别人。
这两天查了一些资料,有所收获,整理一下,写在下面。
第一步:获取已安装的应用列表
应用分为两种:一种是系统自带的,另一种是用户自己安装的。
通过下面代码可以获取所有应用的信息:
List apps = getPackageManager().getInstalledApplications(0);
通过以下代码判断是否是应用分类:
if((applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0)
{
//非系统应用
}
else
{
//系统应用
}
第二步:获取已安装的应用对应的安装文件(apk)
//这个属性指定了apk的路径(如:/data/app/bassy.hair.main-1.apk)
ApplicationInfo.sourceDir
//一般来说,这两个属性的值和上面的属性的值相同
ApplicationInfo.publicSourceDir
ApplicationInfo.scanPublicsourceDir
默认情况下,必须要获取root权限,才能访问/data/app目录的,
如果没有root,用文件浏览器进入/data目录,会发现里面为空ÿ

本文介绍了如何在Android中获取已安装应用的列表以及对应的apk文件路径。通过`getInstalledApplications()`方法获取应用信息,使用`sourceDir`属性获取apk路径。虽然通常需要root权限访问/data/app目录,但某些apk文件具有可读权限,可以直接在程序中访问。示例代码展示了如何获取非系统应用的名称、图标和路径。
最低0.47元/天 解锁文章
8021

被折叠的 条评论
为什么被折叠?



