獲取當(dāng)前應(yīng)用的版本號:
新吳網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,新吳網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為新吳上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的新吳做網(wǎng)站的公司定做!
private String getVersionName() throws Exception
{
// 獲取packagemanager的實例
PackageManager packageManager = getPackageManager();
// getPackageName()是你當(dāng)前類的包名,0代表是獲取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
獲取當(dāng)前系統(tǒng)的版本號:
textView.setText("Product Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
[img]獲取當(dāng)前應(yīng)用的版本號:
private String getVersionName() throws Exception
{
// 獲取packagemanager的實例
PackageManager packageManager = getPackageManager();
// getPackageName()是你當(dāng)前類的包名,0代表是獲取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
獲取當(dāng)前系統(tǒng)的版本號:
textView.setText("Product Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
您好,根據(jù)您的需求,可以通過以下兩行代碼獲得相關(guān)系統(tǒng)屬性:
String
version_sdk
=
Build.VERSION.SDK;
//
設(shè)備SDK版本(Android版本號)
String
version_release
=
Build.VERSION.RELEASE;
//
設(shè)備的系統(tǒng)版本
希望能幫到您,還有什么問題歡迎您追問。謝謝。
如果是獲取手機的SDK版本的話那么直接調(diào)用:android.os.Build.VERSION.RELEASE;如果是獲取你客戶端軟件的版本的話那么調(diào)用:getPackageManager().getPackageInfo("你的包名", 0).versionName (.versionName或者.versionCode 看你把版本號配置在androidmanifest.xml里面的哪個字段了)
很多時候我們需要知道用戶當(dāng)前使用的是什么系統(tǒng),甚至是系統(tǒng)的版本號(比如MIUI V7、V8)來進一步處理業(yè)務(wù)邏輯,比如打開系統(tǒng)權(quán)限設(shè)置界面。
感謝國內(nèi)各大Android手機/系統(tǒng)生產(chǎn)商,讓我們這些Android開發(fā)者每天都樂(傷)此(心)不(欲)疲(絕)的解決這些差異化問題。
通過讀取 android.os.Build.MANUFACTURER 常量來獲取設(shè)備的制造商從而確定設(shè)備所使用的系統(tǒng)。
常用 MANUFACTURER 常量對應(yīng)關(guān)系
使用示例:
總結(jié) :此方法通常有效,因為我們通常認為小米的手機使用MIUI系統(tǒng),華為的手機使用EMUI系統(tǒng)等這種關(guān)聯(lián)關(guān)系,那么就可能存在以下情況:
當(dāng)然如果還想獲取系統(tǒng)的版本號,可能這個方法就有點無力回天了。
因此我們可以通過在文件內(nèi)容中查找一些特征標(biāo)識從而確定系統(tǒng)類別。
在對 build.prop 進一步了解的過程中,找到了別人對這一部分的具體使用和講解,這里就不再過多闡述。
別人的使用講解
別人封裝好的工具類
總結(jié) :此方法通常更為有效(取決于特征標(biāo)識的有效性),但比方法1略復(fù)雜一些。但是此方法可能存在一個致命的問題就是可能在某些設(shè)備上你無法讀取 build.prop 文件,據(jù)網(wǎng)上資料顯示(華為mate10 及后續(xù)的一些新設(shè)備無法讀取此文件)。
對于以上兩種方法,方式不同,也都存在各自的短板,因此在實際生產(chǎn)環(huán)境中最好是根據(jù)自己的需求而定,甚至是結(jié)合兩者方法的特點來實現(xiàn)需求,到目前為止并沒有找到其它更為行之有效能夠適應(yīng)所有情況的獲取系統(tǒng)類型和版本的方法,如果有,謝天謝地請您告訴我,不勝感激。
附錄:
小米開發(fā)文檔- 如何識別小米設(shè)備/MIUI系統(tǒng) ,關(guān)于開發(fā)文檔中提到的讀取屬性,應(yīng)該是使用 SystemUtil.java 實現(xiàn)
更多參考資料:
在檢測應(yīng)用程序是否需要升級時,首先應(yīng)該獲取其版本號與服務(wù)器端進行比較進行判斷是否升級 Android有兩個版本號標(biāo)識,分別為:versionCode,(整數(shù)值代表),versionName(字符串代表) 具體方法如下: public static int getVerCode(Context context) { int verCode = -1;try {verCode = context.getPackageManager().getPackageInfo( 包名, 0).versionCode; } catch (NameNotFoundException e) { Log.e(msg, e.getMessage());}return verCode;} public static String getVerName(Context context) { String verName = ;try {verName = context.getPackageManager().getPackageInfo( 包名, 0).versionName;