Android中TelephonyManager類的方法實(shí)例分析
本文實(shí)例講述了Android中TelephonyManager類的方法。分享給大家供大家參考。具體如下:
TelephonyManager類主要提供了一系列用于訪問與手機(jī)通訊相關(guān)的狀態(tài)和信息的get方法。其中包括手機(jī)SIM的狀態(tài)和信息、電信網(wǎng)絡(luò)的狀態(tài)及手機(jī)用戶的信息。在應(yīng)用程序中可以使用這些get方法獲取相關(guān)數(shù)據(jù)。
TelephonyManager類的對象可以通過Context.getSystemService(Context.TELEPHONY_SERVICE)方法來獲得,需要注意的是有些通訊信息的獲取對應(yīng)用程序的權(quán)限有一定的限制,在開發(fā)的時(shí)候需要為其添加相應(yīng)的權(quán)限。
以下列出TelephonyManager類所有方法及說明:
package com.ljq.activity; import java.util.List; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.telephony.CellLocation; import android.telephony.NeighboringCellInfo; import android.telephony.TelephonyManager; public class TelephonyManagerActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /** * 返回電話狀態(tài) * * CALL_STATE_IDLE 無任何狀態(tài)時(shí) * CALL_STATE_OFFHOOK 接起電話時(shí) * CALL_STATE_RINGING 電話進(jìn)來時(shí) */ tm.getCallState(); //返回當(dāng)前移動終端的位置 CellLocation location=tm.getCellLocation(); //請求位置更新,如果更新將產(chǎn)生廣播,接收對象為注冊LISTEN_CELL_LOCATION的對象,需要的permission名稱為ACCESS_COARSE_LOCATION。 location.requestLocationUpdate(); /** * 獲取數(shù)據(jù)活動狀態(tài) * * DATA_ACTIVITY_IN 數(shù)據(jù)連接狀態(tài):活動,正在接受數(shù)據(jù) * DATA_ACTIVITY_OUT 數(shù)據(jù)連接狀態(tài):活動,正在發(fā)送數(shù)據(jù) * DATA_ACTIVITY_INOUT 數(shù)據(jù)連接狀態(tài):活動,正在接受和發(fā)送數(shù)據(jù) * DATA_ACTIVITY_NONE 數(shù)據(jù)連接狀態(tài):活動,但無數(shù)據(jù)發(fā)送和接受 */ tm.getDataActivity(); /** * 獲取數(shù)據(jù)連接狀態(tài) * * DATA_CONNECTED 數(shù)據(jù)連接狀態(tài):已連接 * DATA_CONNECTING 數(shù)據(jù)連接狀態(tài):正在連接 * DATA_DISCONNECTED 數(shù)據(jù)連接狀態(tài):斷開 * DATA_SUSPENDED 數(shù)據(jù)連接狀態(tài):暫停 */ tm.getDataState(); /** * 返回當(dāng)前移動終端的唯一標(biāo)識 * * 如果是GSM網(wǎng)絡(luò),返回IMEI;如果是CDMA網(wǎng)絡(luò),返回MEID */ tm.getDeviceId(); //返回移動終端的軟件版本,例如:GSM手機(jī)的IMEI/SV碼。 tm.getDeviceSoftwareVersion(); //返回手機(jī)號碼,對于GSM網(wǎng)絡(luò)來說即MSISDN tm.getLine1Number(); //返回當(dāng)前移動終端附近移動終端的信息 List<NeighboringCellInfo> infos=tm.getNeighboringCellInfo(); for(NeighboringCellInfo info:infos){ //獲取鄰居小區(qū)號 int cid=info.getCid(); //獲取鄰居小區(qū)LAC,LAC: 位置區(qū)域碼。為了確定移動臺的位置,每個(gè)GSM/PLMN的覆蓋區(qū)都被劃分成許多位置區(qū),LAC則用于標(biāo)識不同的位置區(qū)。 info.getLac(); info.getNetworkType(); info.getPsc(); //獲取鄰居小區(qū)信號強(qiáng)度 info.getRssi(); } //返回ISO標(biāo)準(zhǔn)的國家碼,即國際長途區(qū)號 tm.getNetworkCountryIso(); //返回MCC+MNC代碼 (SIM卡運(yùn)營商國家代碼和運(yùn)營商網(wǎng)絡(luò)代碼)(IMSI) tm.getNetworkOperator(); //返回移動網(wǎng)絡(luò)運(yùn)營商的名字(SPN) tm.getNetworkOperatorName(); /** * 獲取網(wǎng)絡(luò)類型 * * NETWORK_TYPE_CDMA 網(wǎng)絡(luò)類型為CDMA * NETWORK_TYPE_EDGE 網(wǎng)絡(luò)類型為EDGE * NETWORK_TYPE_EVDO_0 網(wǎng)絡(luò)類型為EVDO0 * NETWORK_TYPE_EVDO_A 網(wǎng)絡(luò)類型為EVDOA * NETWORK_TYPE_GPRS 網(wǎng)絡(luò)類型為GPRS * NETWORK_TYPE_HSDPA 網(wǎng)絡(luò)類型為HSDPA * NETWORK_TYPE_HSPA 網(wǎng)絡(luò)類型為HSPA * NETWORK_TYPE_HSUPA 網(wǎng)絡(luò)類型為HSUPA * NETWORK_TYPE_UMTS 網(wǎng)絡(luò)類型為UMTS * * 在中國,聯(lián)通的3G為UMTS或HSDPA,移動和聯(lián)通的2G為GPRS或EGDE,電信的2G為CDMA,電信的3G為EVDO */ tm.getNetworkType(); /** * 返回移動終端的類型 * * PHONE_TYPE_CDMA 手機(jī)制式為CDMA,電信 * PHONE_TYPE_GSM 手機(jī)制式為GSM,移動和聯(lián)通 * PHONE_TYPE_NONE 手機(jī)制式未知 */ tm.getPhoneType(); //返回SIM卡提供商的國家代碼 tm.getSimCountryIso(); //返回MCC+MNC代碼 (SIM卡運(yùn)營商國家代碼和運(yùn)營商網(wǎng)絡(luò)代碼)(IMSI) tm.getSimOperator(); tm.getSimOperatorName(); //返回SIM卡的序列號(IMEI) tm.getSimSerialNumber(); /** * 返回移動終端 * * SIM_STATE_ABSENT SIM卡未找到 * SIM_STATE_NETWORK_LOCKED SIM卡網(wǎng)絡(luò)被鎖定,需要Network PIN解鎖 * SIM_STATE_PIN_REQUIRED SIM卡PIN被鎖定,需要User PIN解鎖 * SIM_STATE_PUK_REQUIRED SIM卡PUK被鎖定,需要User PUK解鎖 * SIM_STATE_READY SIM卡可用 * SIM_STATE_UNKNOWN SIM卡未知 */ tm.getSimState(); //返回用戶唯一標(biāo)識,比如GSM網(wǎng)絡(luò)的IMSI編號 tm.getSubscriberId(); //獲取語音信箱號碼關(guān)聯(lián)的字母標(biāo)識。 tm.getVoiceMailAlphaTag(); //返回語音郵件號碼 tm.getVoiceMailNumber(); tm.hasIccCard(); //返回手機(jī)是否處于漫游狀態(tài) tm.isNetworkRoaming(); // tm.listen(PhoneStateListener listener, int events) ; //解釋: //IMSI是國際移動用戶識別碼的簡稱(International Mobile Subscriber Identity) //IMSI共有15位,其結(jié)構(gòu)如下: //MCC+MNC+MIN //MCC:Mobile Country Code,移動國家碼,共3位,中國為460; //MNC:Mobile NetworkCode,移動網(wǎng)絡(luò)碼,共2位 //在中國,移動的代碼為電00和02,聯(lián)通的代碼為01,電信的代碼為03 //合起來就是(也是Android手機(jī)中APN配置文件中的代碼): //中國移動:46000 46002 //中國聯(lián)通:46001 //中國電信:46003 //舉例,一個(gè)典型的IMSI號碼為460030912121001 //IMEI是International Mobile Equipment Identity (國際移動設(shè)備標(biāo)識)的簡稱 //IMEI由15位數(shù)字組成的”電子串號”,它與每臺手機(jī)一一對應(yīng),而且該碼是全世界唯一的 //其組成為: //1. 前6位數(shù)(TAC)是”型號核準(zhǔn)號碼”,一般代表機(jī)型 //2. 接著的2位數(shù)(FAC)是”最后裝配號”,一般代表產(chǎn)地 //3. 之后的6位數(shù)(SNR)是”串號”,一般代表生產(chǎn)順序號 //4. 最后1位數(shù)(SP)通常是”0″,為檢驗(yàn)碼,目前暫備用 } }
希望本文所述對大家的Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android快速實(shí)現(xiàn)發(fā)送郵件實(shí)例
本篇文章主要介紹了Android快速實(shí)現(xiàn)發(fā)送郵件實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04利用Android畫圓弧canvas.drawArc()實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于利用Android畫圓弧canvas.drawArc()的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Android自定義TextView實(shí)現(xiàn)文字傾斜效果
有時(shí)候Android自帶的控件無法滿足我們的某些要求,這時(shí)就需要我們自定義控件來實(shí)現(xiàn)這些功能。比如在實(shí)際開發(fā)應(yīng)用中,我們有時(shí)需要將TextView的文字傾斜一定的角度,就需要自定義TextView。下面這篇文章就給大家介紹了利用Android TextView如何實(shí)現(xiàn)文字傾斜效果。2016-11-11Android SDK命令行工具M(jìn)onkey參數(shù)及使用解析
這篇文章主要介紹了Android SDK命令行工具M(jìn)onkey參,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值數(shù)及使用解析,需要的朋友可以參考下2020-10-10Android 數(shù)據(jù)庫SQLite 寫入SD卡的方法
如果手機(jī)沒有root,數(shù)據(jù)庫文件是無法查看到的,不方便調(diào)試。最好的辦法是把數(shù)據(jù)庫寫進(jìn)SD卡。通過本文給大家介紹Android 數(shù)據(jù)庫SQLite 寫入SD卡的方法,需要的朋友參考下吧2016-04-04Android中new Notification創(chuàng)建實(shí)例的最佳方法
這篇文章主要介紹了Android中new Notification創(chuàng)建實(shí)例的最佳方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08Android實(shí)現(xiàn)簡單計(jì)時(shí)器功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡單計(jì)時(shí)器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10