【背景】
最近一位開發(fā)者試圖使用代碼HuaweiApiAvailability.getServicesVersionCode()獲取HMS Core APK版本,用來(lái)判斷Map Kit部分特性是否可用。不過獲取的結(jié)果和他在設(shè)置-應(yīng)用-HMS Core處看到的不一樣
【解決方法】
CP使用了錯(cuò)誤的方法。
1)如果使用HuaweiApiAvailability.getServicesVersionCode(),獲取的實(shí)際是運(yùn)行程序所需的HMS Core APK的最低版本
2)如果想要獲取機(jī)器當(dāng)前版本的HMS Core,可以這樣獲?。?/span>
try {
PackageManager pm = getPackageManager();
PackageInfo packageInfo = pm.getPackageInfo("com.huawei.hwid", 0);
Log.i(TAG, "Current HMS APK version: " + packageInfo.versionName);
} catch (Exception e) {
e.printStackTrace();
}
3)如果想要獲取HMS SDK版本,倒是可以使用如下代碼獲?。?/span>
HuaweiApiAvailability.HMS_SDK_VERSION_CODE
4) 一個(gè)新的方法(但是暫時(shí)更推薦方法2):
如果你的HMS base的版本 >= 4.0.4.300,你可以調(diào)用:
HMSPackageManager.getInstance(this).getHmsVersionCode();
如果你的HMS base版本 < 4.0.4.300,你可以調(diào)用:
import com.huawei.hms.utils.b;
b.a(this).c()
這是因?yàn)?.0.4.300以前HMSPackageManager這個(gè)類被混淆了