SystemProperties.get("ro.build.display.id", "unKnow") 這樣就返回手機(jī)的版本號了
在黃浦等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都做網(wǎng)站 網(wǎng)站設(shè)計制作按需求定制設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),黃浦網(wǎng)站建設(shè)費用合理。
//獲取版本名 publicstatic String getAppVersionName(Context context) { String versionName = ""; try { // ---get the package info---PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); versionName = pi.versionName; versioncode = pi.versionCode; if (versionName == null versionName.length() = 0) { return""; } } catch (Exception e) { Log.e("VersionInfo", "Exception", e); } return versionName; } 2.-------------------------------------------------------------------------- 獲取當(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; }
在Android中,應(yīng)用程序的版本號是在AndroidManifest.xml文件中進(jìn)行配置的,而PackageInfo類則封裝了從該配置文件中獲取的所有信息,描述了包內(nèi)容的整體信息,因此,可以使用PackageInfo對象的versionName屬性獲取應(yīng)用的版本號。 要怎么獲取PackageInfo對象呢?可以通過PackageManager對象來獲取。PackageManager是一個檢索當(dāng)前已安裝在設(shè)備上的相關(guān)應(yīng)用程序包的各種信息的類。PackageManager對象中的getPackageInfo方法可以獲取PackageInfo對象,該方法需要傳遞兩個參數(shù):應(yīng)用包名和條件。通常情況下,應(yīng)用程序的包名可以通過Activity或Context(Activity繼承自Context)的getPackageName()方法獲取,而添加可以有很多設(shè)置,通常設(shè)置為0。 最后是PackageManager對象的獲取,Context對象提供了getPackageManager()方法來獲取該對象。
您好,根據(jù)您的需求,可以通過以下兩行代碼獲得相關(guān)系統(tǒng)屬性:
String
version_sdk
=
Build.VERSION.SDK;
//
設(shè)備SDK版本(Android版本號)
String
version_release
=
Build.VERSION.RELEASE;
//
設(shè)備的系統(tǒng)版本
希望能幫到您,還有什么問題歡迎您追問。謝謝。
在檢測應(yīng)用程序是否需要升級時,首先應(yīng)該獲取其版本號與服務(wù)器端進(jìn)行比較進(jìn)行判斷是否升級
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;
很多時候我們需要知道用戶當(dāng)前使用的是什么系統(tǒng),甚至是系統(tǒng)的版本號(比如MIUI V7、V8)來進(jìn)一步處理業(yè)務(wù)邏輯,比如打開系統(tǒng)權(quán)限設(shè)置界面。
感謝國內(nèi)各大Android手機(jī)/系統(tǒng)生產(chǎn)商,讓我們這些Android開發(fā)者每天都樂(傷)此(心)不(欲)疲(絕)的解決這些差異化問題。
通過讀取 android.os.Build.MANUFACTURER 常量來獲取設(shè)備的制造商從而確定設(shè)備所使用的系統(tǒng)。
常用 MANUFACTURER 常量對應(yīng)關(guān)系
使用示例:
總結(jié) :此方法通常有效,因為我們通常認(rèn)為小米的手機(jī)使用MIUI系統(tǒng),華為的手機(jī)使用EMUI系統(tǒng)等這種關(guān)聯(lián)關(guān)系,那么就可能存在以下情況:
當(dāng)然如果還想獲取系統(tǒng)的版本號,可能這個方法就有點無力回天了。
因此我們可以通過在文件內(nèi)容中查找一些特征標(biāo)識從而確定系統(tǒng)類別。
在對 build.prop 進(jìn)一步了解的過程中,找到了別人對這一部分的具體使用和講解,這里就不再過多闡述。
別人的使用講解
別人封裝好的工具類
總結(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)
更多參考資料:
網(wǎng)頁題目:android獲取版本號,android系統(tǒng)版本代號
文章起源:http://aaarwkj.com/article26/dssjocg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、云服務(wù)器、標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)