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

Android开发获取系统中已安装程序信息的方法

Пример кода для Android, который рассказывает о методах получения информации о установленных приложениях в системе. Предоставляется для вашего использования и référence, как показано ниже:

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
        appInfo.setUserApp(false);
        //那么就是用户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 +
        ';
  }
}

Читатели, интересующиеся дополнительной информацией о Android, могут ознакомиться с нашими темами: «Введение в разработку Android и продвинутые руководства», «Советы по отладке и решения проблем Android», «Обзор основных компонентов Android», «Советы по работе с видами View Android», «Советы по работе с макетом layout Android» и «Обзор использования контроллеров Android»

Надеюсь, что информация, изложенная в этой статье, поможет вам в разработке Android-приложений.

Заявление: содержимое этой статьи взято из интернета, авторские права принадлежат соответствующему автору, контент предоставлен пользователями интернета в добровольном порядке, сайт не имеет права собственности, не был отредактирован вручную и не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении,并提供 соответствующие доказательства. Если подтвердится, сайт немедленно удалят涉嫌侵权的内容.

Основной учебник