我們大家都知道在手機上我們可以查看表徵圖來知道我們都安裝了什麼樣的應用,但實際上傳Android中我們可以獲得你安裝應用的各種資訊,(雖然在我的應用程式中只需要獲得ICON即可),比如:名稱,版本,包等,不僅僅只是表徵圖。這樣的話,給我們就帶來了和多的方便,如果長時間不用的話,在查看時我們能在很快的時間裡來知道這個應用是幹什麼的。我們也可以馬上判斷一下我們現在是否還有得到這個應用,用得到的話我們就留著,如果用不到的話我們就馬上下載這個應用,卸載了以後會給手機釋放了很大的記憶體,這樣對手機也是非常好的,手機的反應也會變快一些。
我們首先,可以建立一個用於存放應用程式資訊的類結構。我們必須寫這個,要不我們就不會看見你想要的資訊,那麼我們就來看看,代碼如下:
class AppInfo { private int versionCode = 0; //名稱 private String appname = ""; //包 private String packagename = ""; private String versionName = ""; //表徵圖 private Drawable appicon = null; }
上面的代碼我們就寫了名稱、包、還有表徵圖,如果你想寫別的話,你也可以自己寫很多關於這個應用的資訊。在這裡我就不一一給大家寫了。我們主要就是這三種。
然後可以通過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); }
在這裡我們用到了for迴圈,這個主要的意思是用迴圈來把所有的軟體給顯示出來。這裡主要的是執行個體化一下ArrayList<AppInfo> appList = new ArrayList<AppInfo>();如果不執行個體化的話你不會被調用,這樣的話ArrayList<AppInfo>這個數組中的軟體就不會不顯示出來。大家一定要記住了。我們得先執行個體化一下,再用迴圈。