導航:首頁 > 版本升級 > andorid獲取版本

andorid獲取版本

發布時間:2023-03-07 09:57:42

1. 如何獲取手機的android版本

您好,根據您的需求,可以通過以下兩行代碼獲得相關系統屬性:
String
version_sdk
=
Build.VERSION.SDK;
//
設備版SDK版本權(Android版本號)
String
version_release
=
Build.VERSION.RELEASE;
//
設備的系統版本
希望能幫到您,還有什麼問題歡迎您追問。謝謝。

2. Android 獲取手機廠商、系統版本等信息

原文: https://blog.csdn.net/uyy203/article/details/73276225

在開發中 我們有時候會需要獲取當前手機的系統版本來進行判斷,或者需要獲取一些當前手機的硬體信息。

android.os.Build類中。包括了這樣的一些信息。我們可以直接調用 而不需要添加任何的許可權和方法。

android.os.Build.VERSION_CODES類 中有所有的已公布的Android版本號。全部是Int常亮。可用於與SDK_INT進行比較來判斷當前的系統版本

3. 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;

4. android 怎麼獲得app版本號

在Android中,應用程序的版本號是在AndroidManifest.xml文件中進行配置專的,而PackageInfo類則封裝了從該配置文件中獲取的所有信息屬,描述了包內容的整體信息,因此,可以使用PackageInfo對象的versionName屬性獲取應用的版本號。 要怎麼獲取PackageInfo對象呢?可以通過PackageManager對象來獲取。PackageManager是一個檢索當前已安裝在設備上的相關應用程序包的各種信息的類。PackageManager對象中的getPackageInfo方法可以獲取PackageInfo對象,該方法需要傳遞兩個參數:應用包名和條件。通常情況下,應用程序的包名可以通過Activity或Context(Activity繼承自Context)的getPackageName()方法獲取,而添加可以有很多設置,通常設置為0。 最後是PackageManager對象的獲取,Context對象提供了getPackageManager()方法來獲取該對象。

5. android怎麼獲取系統版本

如果是獲取手機的SDK版本的話那麼直接調用:android.os.Build.VERSION.RELEASE;如果是獲取你客戶端軟體的版本的話那內么調用:getPackageManager().getPackageInfo("你的包名", 0).versionName (.versionName或者容.versionCode 看你把版本號配置在androidmanifest.xml裡面的哪個欄位了)

6. Android獲取系統cpu信息,內存,版本,電量等信息

1、CPU頻率,CPU信息:/proc/cpuinfo和/proc/stat

通過讀取文件/proc/cpuinfo系統CPU的類型等多種信息。

讀取/proc/stat 所有CPU活動的信息來計算CPU使用率

下面我們就來講講如何通過代碼來獲取CPU頻率:

復制代碼 代碼如下:

package com.orange.cpu;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

public class CpuManager {

// 獲取CPU最大頻率(單位KHZ)

// "/system/bin/cat" 命令行

// "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" 存儲最大頻率的文件的.路徑

public static String getMaxCpuFreq() {

String result = "";

ProcessBuilder cmd;

try {

String[] args = { "/system/bin/cat",

"/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" };

cmd = new ProcessBuilder(args);

Process process = cmd.start();

InputStream in = process.getInputStream();

byte[] re = new byte[24];

while (in.read(re) != -1) {

result = result + new String(re);

}

in.close();

} catch (IOException ex) {

ex.printStackTrace();

result = "N/A";

}

return result.trim();

}

// 獲取CPU最小頻率(單位KHZ)

public static String getMinCpuFreq() {

String result = "";

ProcessBuilder cmd;

try {

String[] args = { "/system/bin/cat",

"/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq" };

cmd = new ProcessBuilder(args);

Process process = cmd.start();

InputStream in = process.getInputStream();

byte[] re = new byte[24];

while (in.read(re) != -1) {

result = result + new String(re);

}

in.close();

} catch (IOException ex) {

ex.printStackTrace();

result = "N/A";

}

return result.trim();

}

// 實時獲取CPU當前頻率(單位KHZ)

public static String getCurCpuFreq() {

String result = "N/A";

try {

FileReader fr = new FileReader(

"/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");

BufferedReader br = new BufferedReader(fr);

String text = br.readLine();

result = text.trim();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return result;

}

// 獲取CPU名字

public static String getCpuName() {

try {

FileReader fr = new FileReader("/proc/cpuinfo");

BufferedReader br = new BufferedReader(fr);

String text = br.readLine();

String[] array = text.split(":s+", 2);

for (int i = 0; i < array.length; i++) {

}

return array[1];

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

2、內存:/proc/meminfo

復制代碼 代碼如下:

public void getTotalMemory() {

String str1 = "/proc/meminfo";

String str2="";

try {

FileReader fr = new FileReader(str1);

BufferedReader localBufferedReader = new BufferedReader(fr, 8192);

while ((str2 = localBufferedReader.readLine()) != null) {

Log.i(TAG, "---" + str2);

}

} catch (IOException e) {

}

}

3、Rom大小

復制代碼 代碼如下:

public long[] getRomMemroy() {

long[] romInfo = new long[2];

//Total rom memory

romInfo[0] = getTotalInternalMemorySize();

//Available rom memory

File path = Environment.getDataDirectory();

StatFs stat = new StatFs(path.getPath());

long blockSize = stat.getBlockSize();

long availableBlocks = stat.getAvailableBlocks();

romInfo[1] = blockSize * availableBlocks;

getVersion();

return romInfo;

}

public long getTotalInternalMemorySize() {

File path = Environment.getDataDirectory();

StatFs stat = new StatFs(path.getPath());

long blockSize = stat.getBlockSize();

long totalBlocks = stat.getBlockCount();

return totalBlocks * blockSize;

}

4、sdCard大小

復制代碼 代碼如下:

public long[] getSDCardMemory() {

long[] sdCardInfo=new long[2];

String state = Environment.getExternalStorageState();

if (Environment.MEDIA_MOUNTED.equals(state)) {

File sdcardDir = Environment.getExternalStorageDirectory();

StatFs sf = new StatFs(sdcardDir.getPath());

long bSize = sf.getBlockSize();

long bCount = sf.getBlockCount();

long availBlocks = sf.getAvailableBlocks();

sdCardInfo[0] = bSize * bCount;//總大小

sdCardInfo[1] = bSize * availBlocks;//可用大小

}

return sdCardInfo;

}

5、電池電量

復制代碼 代碼如下:

private BroadcastReceiver batteryReceiver=new BroadcastReceiver(){

@Override

public void onReceive(Context context, Intent intent) {

int level = intent.getIntExtra("level", 0);

// level加%就是當前電量了

}

};

registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

6、系統的版本信息

復制代碼 代碼如下:

public String[] getVersion(){

String[] version={"null","null","null","null"};

String str1 = "/proc/version";

String str2;

String[] arrayOfString;

try {

FileReader localFileReader = new FileReader(str1);

BufferedReader localBufferedReader = new BufferedReader(

localFileReader, 8192);

str2 = localBufferedReader.readLine();

arrayOfString = str2.split("s+");

version[0]=arrayOfString[2];//KernelVersion

localBufferedReader.close();

} catch (IOException e) {

}

version[1] = Build.VERSION.RELEASE;// firmware version

version[2]=Build.MODEL;//model

version[3]=Build.DISPLAY;//system version

return version;

}

7、mac地址和開機時間

復制代碼 代碼如下:

public String[] getOtherInfo(){

String[] other={"null","null"};

wifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);

WifiInfo wifiInfo = wifiManager.getConnectionInfo();

if(wifiInfo.getMacAddress()!=null){

other[0]=wifiInfo.getMacAddress();

} else {

other[0] = "Fail";

}

other[1] = getTimes();

return other;

}

private String getTimes() {

long ut = SystemClock.elapsedRealtime() / 1000;

if (ut == 0) {

ut = 1;

}

int m = (int) ((ut / 60) % 60);

int h = (int) ((ut / 3600));

return h + " " + mContext.getString(R.string.info_times_hour) + m + " "

+ mContext.getString(R.string.info_times_minute);

}

7. 怎樣查看Android手機系統版本號

以OPPO手機為例,查看Android手機系統版本號的方法如下:

一、打開手機,在手機桌面上找版到」設置「一權項,點擊進入。

8. 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

閱讀全文

與andorid獲取版本相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接