我正在尝试使用 Pacakge 管理器从设备中获取已卸载应用程序的列表。 但是,代码返回所有已安装应用程序的列表。
// get a list of all installed apps
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
for(ApplicationInfo unisntalledPackage : packages){
// itearte hough apps vi acativity manager and get details
PackageInfo pkginfo=null;
try {
pkginfo = pm.getPackageInfo(unisntalledPackage.processName,
PackageManager.GET_UNINSTALLED_PACKAGES);
} catch (NameNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (pkginfo !=null && !isSystemPackage(pkginfo)) {
try{ .....//get info form package object
感谢任何意见。
最佳答案
使用 GET_UNINSTALLED_PACKAGES 返回“关于所有具有数据目录的应用程序(甚至是未安装的应用程序)的信息。”所以代码完全符合预期 - 您获得所有已安装的包,另外任何已卸载但用户选择保留数据的包。
要仅获取已卸载的软件包,您必须遍历现有列表,仅选择已卸载的软件包。
关于android - 未安装的应用程序列表查询返回已安装应用程序列表的形式 PackageManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26487255/