Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法
本文實例講述了Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法。分享給大家供大家參考,具體如下:
public class AppInfoParser { private static String tag = "AppInfoParser"; public static List<AppInfo> getAppInfos(Context context){ //首先獲取到包的管理者 PackageManager packageManager = context.getPackageManager(); //獲取到所有的安裝包 List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0); ArrayList<AppInfo> appInfos = new ArrayList<>(); for (PackageInfo installedPackage : installedPackages) { AppInfo appInfo = new AppInfo(); //程序包名 String packageName = installedPackage.packageName; appInfo.setPackageName(packageName); //獲取到圖標 Drawable icon = installedPackage.applicationInfo.loadIcon(packageManager); appInfo.setIcon(icon); //獲取到應用的名字 String appName = installedPackage.applicationInfo.loadLabel(packageManager).toString(); appInfo.setAppName(appName); //獲取到安裝包的路徑 String sourceDir = installedPackage.applicationInfo.sourceDir; File file = new File(sourceDir); //獲取到安裝apk的大小 long apkSize = file.length(); //格式化apk的大小 appInfo.setApkSize(Formatter.formatFileSize(context,apkSize)); int flags = installedPackage.applicationInfo.flags; //判斷當前是否是系統(tǒng)app if((flags & ApplicationInfo.FLAG_SYSTEM) !=0){ //那么就是系統(tǒng)app appInfo.setUserApp(false); }else{ //那么就是用戶app appInfo.setUserApp(true); } if((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){ //那么當前安裝的就是sd卡 appInfo.setSD(true); }else{ //那么就是手機內(nèi)存 appInfo.setSD(false); } appInfos.add(appInfo); } return appInfos; } }
public class AppInfo { //應用圖標 private Drawable icon; //應用的名字 private String appName; //應用程序的大小 private String apkSize; //表示用戶程序 private boolean isUserApp; //存儲的位置. private boolean isSD; private String packageName; public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; } public Drawable getIcon() { return icon; } public void setIcon(Drawable icon) { this.icon = icon; } public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } public String getApkSize() { return apkSize; } public void setApkSize(String apkSize) { this.apkSize = apkSize; } public boolean isUserApp() { return isUserApp; } public void setUserApp(boolean isUserApp) { this.isUserApp = isUserApp; } public boolean isSD() { return isSD; } public void setSD(boolean isSD) { this.isSD = isSD; } @Override public String toString() { return "AppInfo{" + "appName='" + appName + '\'' + ", apkSize='" + apkSize + '\'' + ", isUserApp=" + isUserApp + ", isSD=" + isSD + '}'; } }
更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
- Android獲取apk程序簽名信息代碼示例
- Android實現(xiàn)獲取應用程序相關信息列表的方法
- Android開發(fā)之在程序中時時獲取logcat日志信息的方法(附demo源碼下載)
- 如何判斷軟件程序是否聯(lián)網(wǎng) 聯(lián)網(wǎng)狀態(tài)提示信息Android實現(xiàn)
- Android實現(xiàn)整理PackageManager獲取所有安裝程序信息
- Android編程實現(xiàn)捕獲程序異常退出時的錯誤log信息功能詳解
- Android ApplicationInfo 應用程序信息的詳解
- Android編程獲取APP應用程序基本信息輔助類【APP名稱、包名、圖標,版本號等】
- Android獲取手機型號/系統(tǒng)版本號/App版本號等信息實例講解
相關文章
Android開發(fā)中requestfocus()無效的原因及解決辦法
這篇文章主要介紹了Android開發(fā)中requestfocus()無效的原因及解決辦法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08Android自定義ProgressBar實現(xiàn)漂亮的進度提示框
這篇文章主要為大家詳細介紹了Android自定義ProgressBar實現(xiàn)漂亮的進度提示框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06深入Android Handler,MessageQueue與Looper關系
這篇文章主要介紹了深入Android Handler,MessageQueue與Looper關系,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08Android App中ViewPager與Fragment結合的一些問題解決
這篇文章主要介紹了Android App中ViewPager與Fragment結合的一些問題解決,重點講解了如何更新及替換ViewPager中的Fragment,需要的朋友可以參考下2016-03-03Android 使用selector改變按鈕狀態(tài)實例詳解
這篇文章主要介紹了Android 使用selector改變按鈕狀態(tài)實例詳解的相關資料,需要的朋友可以參考下2017-01-01