原文: https://blog.csdn.net/uyy203/article/details/73276225
在開發中 我們有時候會需要獲取當前手機的系統版本來進行判斷,或者需要獲取一些當前手機的硬體信息。
android.os.Build類中。包括了這樣的一些信息。我們可以直接調用 而不需要添加任何的許可權和方法。
android.os.Build.VERSION_CODES類 中有所有的已公布的Android版本號。全部是Int常亮。可用於與SDK_INT進行比較來判斷當前的系統版本
『貳』 Android獲取系統(ROM)類別及版本號
很多時候我們需要知道用戶當前使用的是什麼系統,甚至是系統的版本號(比如MIUI V7、V8)來進一步處理業務邏輯,比如打開系統許可權設置界面。
感謝國內各大Android手機/系統生產商,讓我們這些Android開發者每天都樂(傷)此(心)不(欲)疲(絕)的解決這些差異化問題。
通過讀取 android.os.Build.MANUFACTURER 常量來獲取設備的製造商從而確定設備所使用的系統。
常用 MANUFACTURER 常量對應關系
使用示例:
總結 :此方法通常有效,因為我們通常認為小米的手機使用MIUI系統,華為的手機使用EMUI系統等這種關聯關系,那麼就可能存在以下情況:
當然如果還想獲取系統的版本號,可能這個方法就有點無力回天了。
因此我們可以通過在文件內容中查找一些特徵標識從而確定系統類別。
在對 build.prop 進一步了解的過程中,找到了別人對這一部分的具體使用和講解,這里就不再過多闡述。
別人的使用講解
別人封裝好的工具類
總結 :此方法通常更為有效(取決於特徵標識的有效性),但比方法1略復雜一些。但是此方法可能存在一個致命的問題就是可能在某些設備上你無法讀取 build.prop 文件,據網上資料顯示(華為mate10 及後續的一些新設備無法讀取此文件)。
對於以上兩種方法,方式不同,也都存在各自的短板,因此在實際生產環境中最好是根據自己的需求而定,甚至是結合兩者方法的特點來實現需求,到目前為止並沒有找到其它更為行之有效能夠適應所有情況的獲取系統類型和版本的方法,如果有,謝天謝地請您告訴我,不勝感激。
附錄:
小米開發文檔- 如何識別小米設備/MIUI系統 ,關於開發文檔中提到的讀取屬性,應該是使用 SystemUtil.java 實現
更多參考資料: https://blog.csdn.net/xx326664162/article/details/52438706
『叄』 如何獲取android系統當前版本
獲取當前應用的版本號:
private String getVersionName() throws Exception
{
// 獲取packagemanager的實例
PackageManager packageManager = getPackageManager();
// getPackageName()是你當前類的包名,0代表是獲取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
獲取當前系統的版本號:
textView.setText("Proct Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
『肆』 如何獲取android系統當前版本
設置中最後一項關於手機里就有當前的版本號
『伍』 android 代碼如何獲得版本號和版本名稱
其實很簡單,ANDROID系統中有1個Package
Manager,我們將利用它來完成這個任務。
PackageInfo
pkg
=
getPackageManager().getPackageInfo(getApplication().getPackageName(),
0);
String
appName
=
pkg.applicationInfo.loadLabel(getPackageManager()).toString();
String
versionName
=
pkg.versionName;
appName即是ANDROID利用的名稱。versionName即是ANDROID利用當前的版本號,其對應於AndroidManifest.xml文件里的versionName屬性。
『陸』 如何獲取手機的android版本號
您好,根據您的需求,可以通過以下兩行代碼獲得相關系統屬性:
String
version_sdk
=
Build.VERSION.SDK;
//
設備版SDK版本權(Android版本號)
String
version_release
=
Build.VERSION.RELEASE;
//
設備的系統版本
希望能幫到您,還有什麼問題歡迎您追問。謝謝。
『柒』 android怎麼獲取當前版本號
//獲取版本名
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.--------------------------------------------------------------------------
獲取當前應用的版本號:
private String getVersionName() throws Exception
{
// 獲取packagemanager的實例
PackageManager packageManager = getPackageManager();
// getPackageName()是你當前類的包名,0代表是獲取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
『捌』 android怎麼去獲取版本號
獲取APP版本號代碼如下:
PackageManagermanager;
PackageInfoinfo=null;
manager=this.getPackageManager();
try{
info=manager.getPackageInfo(this.getPackageName(),0);
}catch(NameNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
info.versionCode;
info.versionName;
info.packageName;
info.signatures;
這樣,以上的信息就都可以獲取到了。
『玖』 Android應用如何獲取版本號
在檢測應復用程序是否需要升級制時,首先應該獲取其版本號與伺服器端進行比較進行判斷是否升級
Android有兩個版本號標識,分別為:versionCode,(整數值代表),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;