选中使用当前版本播放商店版本并显示更新对话框

时间:2017-01-09 06:48:01

标签: android

我在playstore上发布了一个应用程序,现在我想在Playstore上有新的apk时单击更新对话框。

我获得最新版本和当前版本

直到现在我尝试了以下代码

      if (latestVersion != null && !latestVersion.isEmpty()) {
        if (Float.valueOf(currentVersion) < Float.valueOf(latestVersion)) {
            update_dialog = new Dialog(MainActivity.this);
            update_dialog.setContentView(R.layout.update_dialog);
            update_dialog.setCancelable(false);
            TextView dd = (TextView) update_dialog.findViewById(R.id.udata);
            Button update = (Button) update_dialog.findViewById(R.id.btn_update);
            c_font = Typeface.createFromAsset(getAssets(), "fonts/CaviarDreams_Italic.ttf");
            dd.setTypeface(c_font);
            update.setTypeface(c_font);
            update.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.this.anything.unknown"));
                    startActivity(intent);
                }
            });
            update_dialog.show();
        } else {

        }
    }

它工作正常,但现在我想设置版本1.2.0(两个点)。然后如何检查1.0(一个点)与1.2.0(两个点)

如何比较1.2.0和1.0或1.2.0和1.2.1

2 个答案:

答案 0 :(得分:2)

最好的方法是比较versionCode而不是versionName。您将以Integer形式获得它。

答案 1 :(得分:1)

对于您的问题,最简单的方法是通过将带有点的版本拆分为数组&amp;来转换版本。比较每个数组元素。

String currentVersion = "1.1";
String latestVersion = "1.2.3";
String[] currentVersionArray = currentVersion.split("\\.");
String[] latestVersionArray = latestVersion.split("\\."); 

int minLength = Math.min(currentVersionArray.length, latestVersionArray.length);
boolean isUpgradeAvailable = false;

for(int i = 0; i < minLength; i++) {
    if(Integer.parseInt(currentVersionArray[i]) < Integer.parseInt(latestVersionArray[i])) {
        isUpgradeAvailable = true;
        break;
    }
}
if(!isUpgradeAvailable && minLength != latestVersionArray.length)
    isUpgradeAvailable = true;