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);
//獲取到應(yīng)用的名字
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 {
//應(yīng)用圖標
private Drawable icon;
//應(yīng)用的名字
private String appName;
//應(yīng)用程序的大小
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 +
'}';
}
}
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android獲取apk程序簽名信息代碼示例
- Android實現(xiàn)獲取應(yīng)用程序相關(guā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 應(yīng)用程序信息的詳解
- Android編程獲取APP應(yīng)用程序基本信息輔助類【APP名稱、包名、圖標,版本號等】
- Android獲取手機型號/系統(tǒng)版本號/App版本號等信息實例講解
相關(guān)文章
Android開發(fā)中requestfocus()無效的原因及解決辦法
這篇文章主要介紹了Android開發(fā)中requestfocus()無效的原因及解決辦法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08
Android程序打開和對輸入法的操作(打開/關(guān)閉)
整理了一下Android下對輸入法的操作:打開輸入法窗口、關(guān)閉出入法窗口、如果輸入法打開則關(guān)閉,如果沒打開則打開、獲取輸入法打開的狀態(tài)2013-05-05
Android自定義ProgressBar實現(xiàn)漂亮的進度提示框
這篇文章主要為大家詳細介紹了Android自定義ProgressBar實現(xiàn)漂亮的進度提示框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06
Android 用SQLite實現(xiàn)事務(wù)的方法
本篇文章小編為大家介紹,Android用SQLite實現(xiàn)事務(wù)的方法。需要的朋友參考下2013-04-04
深入Android Handler,MessageQueue與Looper關(guān)系
這篇文章主要介紹了深入Android Handler,MessageQueue與Looper關(guān)系,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
Android App中ViewPager與Fragment結(jié)合的一些問題解決
這篇文章主要介紹了Android App中ViewPager與Fragment結(jié)合的一些問題解決,重點講解了如何更新及替換ViewPager中的Fragment,需要的朋友可以參考下2016-03-03
Android 使用selector改變按鈕狀態(tài)實例詳解
這篇文章主要介紹了Android 使用selector改變按鈕狀態(tài)實例詳解的相關(guān)資料,需要的朋友可以參考下2017-01-01

