![](/img/trans.png)
[英]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.