android 常用系統資訊獲取總結

2021-06-21 14:33:29 字數 3177 閱讀 4795

最近在幫客戶做技術實施方案,需要獲取系統這塊的內容,今天專程用了兩個小時從網上蒐集的資料做了個總結;

// 所有的裝置都可以返回乙個telephonymanager.getdeviceid()

// 如果是gsm網路,返回imei;如果是cdma網路,返回meid

// 手機的唯一標識,像gsm手機的 imei 和 cdma手機的 meid. 但在中國山寨手機導致這個號碼不是唯一標識了

// 取出的值是international mobile equipment identity手機唯一標識碼,即imei;

string deviceid = tm.getdeviceid();

// 對於移動的使用者,手機號碼(mdn)儲存在運營商的伺服器中,而不是儲存在sim卡里。sim卡只保留了imsi和一些驗證資訊

// 取出的 值是手機號,即msisdn : mobile subscriber isdn使用者號碼,這個是我們說的139,136那個號碼;

// 是通過sim卡相關檔案記錄得到的資料

// 歸結到是否可以從sim卡的efmsisdn檔案取出手機號碼了,不幸的是一般運營商不會把使用者號碼寫在這個檔案的,為什麼呢?

// 因為這個手機號碼是在使用者買到卡並開通時才將imsi和msisdn對應上的,卡內生產出來時只有imsi,你不知道使用者喜歡那個手機號碼,因此一般不先對應imsi和msisdn,即時有對應也不寫這個檔案的。

string tel = tm.getline1number();

// 所有的gsm裝置(測試裝置都裝載有sim卡) 可以返回乙個telephonymanager.getsimserialnumber()

// 所有的cdma 裝置對於 getsimserialnumber() 卻返回乙個空值!

// 360手機衛士可能會影響到imei和imsi的獲取,禁止了「獲取該應用獲取裝置資訊」,改為「允許」即可正常獲取imei、imsi

// 返回sim卡的序列號(iccid) iccid:icc

// identity積體電路卡標識,這個是唯一標識一張卡片物理號碼的

string iccid = tm.getsimserialnumber();

// sim卡的序列號(imsi),international

// mobiles subscriber

// identity國際移動使用者號碼標識,

string imsi = tm.getsubscriberid();

// 獲取imei和imsi的第二種方法

// string imsi2 =android.os.systemproperties.get(

// android.telephony.telephonyproperties.property_imsi);

// string imei2

// =android.os.systemproperties.get(android.telephony.telephonyproperties.property_imei);

// 此處獲取裝置android_id

// 所有新增有谷歌賬戶的裝置可以返回乙個 android_id

// 所有的cdma裝置對於 android_id 和

// telephonymanager.getdeviceid()返回相同的值(只要在設定時新增了谷歌賬戶)

// 有些山寨手機這個號碼是乙個…

// 是乙個64位的數字,在裝置第一次啟動的時候隨機生成並在裝置的整個生命週期中不變。(如果重新進行出廠設定可能會改變)

string android_id = secure.getstring(this.getcontentresolver(),

secure.android_id);

// 獲取android手機型號和os的版本號

string mobilename = build.device;

string osversion = build.version.release;

wifimanager wifi = (wifimanager) this

.getsystemservice(context.wifi_service);

wifiinfo info = wifi.getconnectioninfo();

string macaddress = info.getmacaddress();// 更換為macaddress

wifi位址

string softwareversion = tm.getdevicesoftwareversion();// string

// string versionname = null;

// string versioncode = null;

// packagemanagerpm = this.getpackagemanager();

// packageinfo pi;

// try catch (namenotfoundexception e)

//獲取當前手機支援的流動網路型別

string phonetype = null;

switch (tm.getphonetype())

string syteminfo = "裝置名稱 : " + mobilename +"\n系統版本:" + osversion +"\n軟體版本: "

+ softwareversion +"\n裝置id(imei) " + deviceid +"\n"

+"手機號  :  "+ tel +"\n"+"sim卡積體電路卡標識 : "+ iccid +"\n"

+"sim國際移動號碼標示 : "+ imsi +"\n"+"android_id : "+ android_id

------------------------------------code end-----------------------------------

原始碼位置:

android 獲取系統硬體資訊

一,首先設定許可權訪問 二,邏輯 獲取系統硬體資訊 package com.wangfubin.getmyphoneinformation import org.w3c.dom.userdatahandler import android.r.id import android.annotation...

Android 獲取手機系統資訊

log.e model build.model 獲取手機型號 log.e brand build.brand android系統定製商 log.e sdk build.version.sdk sdk版本 log.e sdk int string.valueof build.version.sdk i...

Android 系統資訊與應用資訊獲取

要獲取系統的配置資訊,通常從兩方面獲取 android.os.build 匯入包import android.os.build public static void getbuildinfo systempropertypublic static void getsystempropertyinfo...