Android中檢測手機制式和流動網路型別

2021-06-07 18:36:05 字數 2862 閱讀 9288

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″,為檢驗碼,目前暫備用

**:

Android 檢測 手機硬體狀態 的Utils

package com.cy.tools import android.annotation.suppresslint import import android.bluetooth.bluetoothadapter import android.content.context import and...

Android中UID機制和共享程序

我們經常在乙個activity中去start另乙個activity,或者與另乙個acitivity的結果進行互動 startactivityforresult 但有沒有想過可能會出現的permission問題呢?如果你遇到了permission denial的exception,那麼你需要讀讀這篇文...

Android中UID機制和共享程序

我們經常在乙個activity中去start另乙個activity,或者與另乙個acitivity的結果進行互動 startactivityforresult 但有沒有想過可能會出現的permission問題呢?如果你遇到了permission denial的exception,那麼你需要讀讀這篇文...