Android中檢測手機制式和移動網絡類型

Android中與電話功能相關的類是 TelephonyManager ,此類中定義了很多常量,以下分類說明
獲取以下信息需要在AndroidManifest.xml中指定權限

一、 數據連接狀態
獲取數據連接狀態:int getDataState()
獲取數據活動狀態:int getDataActivity()
常用的有這幾個:
int DATA_ACTIVITY_IN 數據連接狀態:活動,正在接受數據
int DATA_ACTIVITY_OUT 數據連接狀態:活動,正在發送數據
int DATA_ACTIVITY_INOUT 數據連接狀態:活動,正在接受和發送數據
int DATA_ACTIVITY_NONE 數據連接狀態:活動,但無數據發送和接受
int DATA_CONNECTED 數據連接狀態:已連接
int DATA_CONNECTING 數據連接狀態:正在連接
int DATA_DISCONNECTED 數據連接狀態:斷開
int DATA_SUSPENDED 數據連接狀態:暫停

二、 移動網絡類型
獲取網絡類型:int getNetworkType()
常用的有這幾個:
int NETWORK_TYPE_CDMA 網絡類型爲CDMA
int NETWORK_TYPE_EDGE 網絡類型爲EDGE
int NETWORK_TYPE_EVDO_0 網絡類型爲EVDO0
int NETWORK_TYPE_EVDO_A 網絡類型爲EVDOA
int NETWORK_TYPE_GPRS 網絡類型爲GPRS
int NETWORK_TYPE_HSDPA 網絡類型爲HSDPA
int NETWORK_TYPE_HSPA 網絡類型爲HSPA
int NETWORK_TYPE_HSUPA 網絡類型爲HSUPA
int NETWORK_TYPE_UMTS 網絡類型爲UMTS
在中國,聯通的3G爲UMTS或HSDPA,移動和聯通的2G爲GPRS或EGDE,電信的2G爲CDMA,電信的3G爲EVDO

三、 手機制式類型
獲取手機制式:int getPhoneType()
int PHONE_TYPE_CDMA 手機制式爲CDMA,電信
int PHONE_TYPE_GSM 手機制式爲GSM,移動和聯通
int PHONE_TYPE_NONE 手機制式未知

四、 SIM卡狀態
獲取SIM卡狀態:int getSimState()
int SIM_STATE_ABSENT SIM卡未找到
int SIM_STATE_NETWORK_LOCKED SIM卡網絡被鎖定,需要Network PIN解鎖
int SIM_STATE_PIN_REQUIRED SIM卡PIN被鎖定,需要User PIN解鎖
int SIM_STATE_PUK_REQUIRED SIM卡PUK被鎖定,需要User PUK解鎖
int SIM_STATE_READY SIM卡可用
int SIM_STATE_UNKNOWN SIM卡未知

五、其它信息
String getSimCountryIso()
返回SIM卡提供商的國家代碼
String getNetworkCountryIso()
返回ISO標準的國家碼,即國際長途區號
String getSimOperator()
String getNetworkOperator()
返回MCC+MNC代碼 (SIM卡運營商國家代碼和運營商網絡代碼)(IMSI)
String getSimOperatorName()
String getNetworkOperatorName()
返回移動網絡運營商的名字(SPN)
String getSubscriberId()
返回IMSI,即國際移動用戶識別碼
String getDeviceId()
如果是GSM網絡,返回IMEI;如果是CDMA網絡,返回MEID
String getSimSerialNumber()
返回SIM卡的序列號(IMEI)
String getLine1Number()
返回手機號碼,對於GSM網絡來說即MSISDN
boolean isNetworkRoaming()
返回手機是否處於漫遊狀態

解釋:
IMSI是國際移動用戶識別碼的簡稱(International Mobile Subscriber Identity)
IMSI共有15位,其結構如下:
MCC+MNC+MIN
MCC:Mobile Country Code,移動國家碼,共3位,中國爲460;
MNC:Mobile NetworkCode,移動網絡碼,共2位
在中國,移動的代碼爲電00和02,聯通的代碼爲01,電信的代碼爲03
合起來就是(也是Android手機中APN配置文件中的代碼):
中國移動:46000 46002
中國聯通:46001
中國電信:46003
舉例,一個典型的IMSI號碼爲460030912121001

IMEI是International Mobile Equipment Identity (國際移動設備標識)的簡稱
IMEI由15位數字組成的”電子串號”,它與每臺手機一一對應,而且該碼是全世界唯一的
其組成爲:
1. 前6位數(TAC)是”型號覈准號碼”,一般代表機型
2. 接着的2位數(FAC)是”最後裝配號”,一般代表產地
3. 之後的6位數(SNR)是”串號”,一般代表生產順序號
4. 最後1位數(SP)通常是”0″,爲檢驗碼,目前暫備用

轉自:https://wheremylife.com/blog/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章