Android之獲得已安裝程序列表

jopen 10年前發布 | 54K 次閱讀 Android Android開發 移動開發

      我們大家都知道在手機上我們可以查看圖標來知道我們都安裝了什么樣的應用,但實際上載Android中我們可以獲得你安裝應用的各種信息,(雖然在我的應用程序中只需要獲得ICON即可),比如:名稱,版本,包等,不僅僅只是圖標。這樣的話,給我們就帶來了和多的方便,如果長時間不用的話,在查看時我們能在很快的時間里來知道這個應用是干什么的。我們也可以馬上判斷一下我們現在是否還有得到這個應用,用得到的話我們就留著,如果用不到的話我們就馬上下載這個應用,卸載了以后會給手機釋放了很大的內存,這樣對手機也是非常好的,手機的反應也會變快一些。

      我們首先,可以創建一個用于存放應用程序信息的類結構。我們必須寫這個,要不我們就不會看見你想要的信息,那么我們就來看看,代碼如下:

    class AppInfo {   
            private int versionCode = 0; //名稱   
            private String appname = ""; //包   
            private String packagename = "";   
            private String versionName = ""; //圖標   
            private Drawable appicon = null;   
    }  
</div> </div> 上面的代碼我們就寫了名稱、包、還有圖標,如果你想寫別的話,你也可以自己寫很多關于這個應用的信息。在這里我就不一一給大家寫了。我們主要就是這三種。
然后可以通過getPackageManager()函數獲得PackageManager對象,而PackageManager中提供了getInstalledPackages函數可以獲得已經安裝的應用程序包。會返回所有已經安裝的應用程序的列表。
我們然后通過如下代碼取出所需要的信息即可。

 
    ArrayList<AppInfo> appList = new ArrayList<AppInfo>();

      List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);   

      for(int i=0;i<packages.size();i++) {   

             PackageInfo packageInfo = packages.get(i);   

             AppInfo tmpInfo = new AppInfo();   

             tmpInfo.appname = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();  

             tmpInfo.packagename = packageInfo.packageName;   

             tmpInfo.versionName = packageInfo.versionName;   

             tmpInfo.versionCode = packageInfo.versionCode;   

             tmpInfo.appicon = packageInfo.applicationInfo.loadIcon(getPackageManager());   

             appList.add(tmpInfo);   

}  </pre></b><a class="CopyToClipboard" title="copy" href="/misc/goto?guid=4959549661656250518"></a></div>

</div> </div> 在這里我們用到了for循環,這個主要的意思是用循環來把所有的軟件給顯示出來。這里主要的是實例化一下ArrayList<AppInfo> appList = new ArrayList<AppInfo>();如果不實例化的話你不會被調用,這樣的話ArrayList<AppInfo>這個數組中的軟件就不會不顯示出來。大家一定要記住了。我們得先實例化一下,再用循環。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!