を使用して、Android バージョンの「int 形式」を取得できます。
Build.VERSION.SDK_INT
とにかく、「ドット表記」のバージョン名しかない場合は、split
「。」で文字列を指定できます。char を繰り返し、部分ごとに比較します。頭のてっぺんから、それは次のようになります.-
public int compareVersionNames(String oldVersionName, String newVersionName) {
int res = 0;
String[] oldNumbers = oldVersionName.split("\\.");
String[] newNumbers = newVersionName.split("\\.");
// To avoid IndexOutOfBounds
int maxIndex = Math.min(oldNumbers.length, newNumbers.length);
for (int i = 0; i < maxIndex; i ++) {
int oldVersionPart = Integer.valueOf(oldNumbers[i]);
int newVersionPart = Integer.valueOf(newNumbers[i]);
if (oldVersionPart < newVersionPart) {
res = -1;
break;
} else if (oldVersionPart > newVersionPart) {
res = 1;
break;
}
}
// If versions are the same so far, but they have different length...
if (res == 0 && oldNumbers.length != newNumbers.length) {
res = (oldNumbers.length > newNumbers.length)?1:-1;
}
return res;
}
試しずに書いただけなので、最適化できるのは確かですが、スタートです。