[英]Android : How to get the List of Installed apps that use Internet Access - PackageManager
[英]List of un-installed apps query returning list of installed apps form PackageManager
我正在尝试使用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返回“有关具有数据目录的所有应用程序(甚至是未安装的应用程序)的信息。” 因此,代码正在完成预期的工作 - 您获得所有已安装的软件包, 此外还有任何已卸载的软件包,但用户选择保留数据。
要获得已卸载的软件包,您必须遍历列表,只选择已卸载的软件包。
@Zmarties感谢您的投入。
通过迭代包List并使用TRUE FLAG_IS_DATA_ONLY捕获ApplicationInfo对象,该对象没有返回16777216的整数(这是返回的常量,如果为true)我们可以捕获已卸载的应用程序;
if(unisntalledPackage.FLAG_IS_DATA_ONLY !=16777216 ){
// then app is unisntalled
但是无法确定是否未捕获任何已卸载的应用程序,我的测试设备上仍有数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.