簡體   English   中英

未安裝的應用程序列表查詢返回已安裝的應用程序列表,包括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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM