【问题标题】:How To Get Another App's Version Name如何获取另一个应用程序的版本名称
【发布时间】:2017-11-09 18:18:09
【问题描述】:

我想获取 Minecraft 袖珍版的版本名称(例如 0.13.0.b5)。

这是 MCPE (Minecraft Pocket Edition) 的包

com.mojang.minecraftpe

我想获得String 的版本。我怎样才能做到这一点?

我获取包名的代码:

List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);

PackageInfo mypackage = <com.mojang.minecraftpe>;

String versionName = mypackage.versionName;

解决方案:

try
    {
        PackageInfo eInfo = getPackageManager().getPackageInfo("com.mojang.minecraftpe", 0);
        changelog=eInfo.versionName;
        lol.setText(changelog);
        }
    catch (PackageManager.NameNotFoundException e)
    {}

【问题讨论】:

  • mypackage.versionCode 而不是 mypackage.versionName。
  • 我不想获取 versionCode (70615005) 我想获取 versionName (0.13.0)(而且我想获取另一个应用的 versionName。不是我的)

标签: android


【解决方案1】:

它从包管理器(按包)获取包信息并返回版本名称。:

PackageInfo packageInfo = getPackageManager().getPackageInfo("com.mojang.minecraftpe", 0);
return packageInfo.versionName;

【讨论】:

  • 欢迎来到 StackOverflow!请为您的代码添加一些解释:为什么它有效?它应该怎么做?
  • 它返回特定安装应用程序的版本名称
  • @Aurasphere 它从包管理器(按包)获取包信息并返回版本名称。我认为这有点不言自明。任何Context 都有一个包管理器。
  • @EpicPandaForce “简短的回答还可以,但完整的解释更好”,引用自此处:stackoverflow.com/help/how-to-answer
【解决方案2】:
 List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);
 ArrayList<App> result = new ArrayList<>();

 for(int i=0;i<apps.size();i++) {
      PackageInfo p = apps.get(i);
      App newApp = new App();
      newApp.pname = p.packageName;
      newApp.versionName = p.versionName;
      newApp.versionCode = p.versionCode;
 }

 String minecraft = "com.mojang.minecraftpe";

 for (App name : result) {
        if (Objects.equals(minecraft, name.pname))
        String versionName = name.versionName;

 }

//-- 类描述------

class App {
    String pname = "";
    String versionName = "";
    int versionCode = 0;
 }

如果您想要版本代码,请使用 name.VersionCode 修改 for 循环中的 'if' 条件。

参考:PackageManager(Class for retrieving various kinds of information related to the application packages that are currently installed on the device.)

【讨论】:

  • 我的包裹?这个变量在哪里声明?
  • @Skizo 抱歉错字。使用'name.versionName'。查看更新的代码。
  • 未知实体应用信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 2017-06-14
  • 2017-12-03
  • 1970-01-01
相关资源
最近更新 更多