English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Metodo per ottenere informazioni sulle applicazioni installate su Android

Questa istanza illustra un metodo di sviluppo Android per ottenere informazioni sugli applicativi installati nel sistema. Condivido questo con tutti voi per fare riferimento, come segue:

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;
      //判断当前是否是系统app
      if ((flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
        //那么就是系统app
        appInfo.setUserApp(false);
      } else {
        //那么就是用户app
        appInfo.setUserApp(true);
      }
      if ((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
       //那么当前安装的就是sd卡
        appInfo.setSD(true);
      } else {
        //那么就是手机内存
        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 +
        '}';
  }
}

Chi è interessato a ulteriori contenuti relativi a Android può consultare la sezione speciale di questo sito: 'Guida all'inizio e avanzamento dello sviluppo Android', 'Trucchi di debug e soluzioni ai problemi comuni Android', 'Sommarizzazione dell'uso dei componenti di base Android', 'Sommarizzazione delle tecniche di View Android', 'Sommarizzazione delle tecniche di layout Android' e 'Sommarizzazione dell'uso dei controlli Android'.

Spero che questo articolo possa essere di aiuto a tutti nella progettazione di applicazioni Android.

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright è proprietà del rispettivo autore, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene il diritto di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale correlata. Se trovi contenuti sospetti di violazione del copyright, sei invitato a inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare