【问题标题】:How to detect installed Chrome version from my Android App?如何从我的 Android 应用程序中检测已安装的 Chrome 版本?
【发布时间】:2018-08-07 18:26:26
【问题描述】:

我正在开发一项功能,只有当设备上安装的 chrome 版本高于 65 版时,我才需要将用户从 Android Native APP 转换到 Chrome 自定义选项卡。所以我的问题是,有没有办法可以检测到 chrome Android Native App 的版本?

【问题讨论】:

    标签: android google-chrome


    【解决方案1】:
    private boolean isChromeInstalledAndVersionGreaterThan65() {
        PackageInfo pInfo;
        try {
            pInfo = getPackageManager().getPackageInfo("com.android.chrome", 0);
        } catch (PackageManager.NameNotFoundException e) {
            //chrome is not installed on the device
            return false;
        }
        if (pInfo != null) {
            //Chrome has versions like 68.0.3440.91, we need to find the major version
            //using the first dot we find in the string
            int firstDotIndex = pInfo.versionName.indexOf(".");
            //take only the number before the first dot excluding the dot itself
            String majorVersion = pInfo.versionName.substring(0, firstDotIndex);
            return Integer.parseInt(majorVersion) > 65;
        }
        return false;
    }
    

    显然,这将一直有效,直到 Chrome 将按照他们迄今为止所做的那样进行版本控制,如果他们决定更改版本控制,那么逻辑也应该更新。 (我不认为这会发生,但为了最大的安全性,把所有东西都放在一个 try-catch 中)

    【讨论】:

      【解决方案2】:
          private boolean checkVersion(String uri) {
                  String versionName;
                  int version = 0;
                  PackageManager pm = getPackageManager();
                  try {
                      versionName = pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES).versionName;
                      String[] split = versionName.split(Pattern.quote("."));
                      String major = split[0];
                      version = Integer.parseInt(major);
                      return version > 65;
                  } catch (PackageManager.NameNotFoundException e) {
                      //Catch the Exception
                  }
                  return false;
      }
      

      然后调用上面的方法使用

      checkVersion("com.android.chrome"); //This will return a boolean value
      

      【讨论】:

        猜你喜欢
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多