我在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
答案 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;