Android中TelephonyManager用法實例
本文實例講述了Android中TelephonyManager用法。分享給大家供大家參考,具體如下:
一、概述:
TelephonyManager類主要提供了一系列用于訪問與手機通訊相關(guān)的狀態(tài)和信息的get方法。其中包括手機SIM的狀態(tài)和信息、電信網(wǎng)絡(luò)的狀態(tài)及手機用戶的信息。在應(yīng)用程序中可以使用這些get方法獲取相關(guān)數(shù)據(jù)。
TelephonyManager類的對象可以通過Context.getSystemService(Context.TELEPHONY_SERVICE)方法來獲得,需要注意的是有些通訊信息的獲取對應(yīng)用程序的權(quán)限有一定的限制,在開發(fā)的時候需要為其添加相應(yīng)的權(quán)限。
二、示例:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 讀取sim卡 TelephonyManager tm = (TelephonyManager) this .getSystemService(Context.TELEPHONY_SERVICE); // // String tel = tm.getLine1Number(); // 取出MSISDN,很可能為空 // String iccid = tm.getSimSerialNumber(); // 取出ICCID // String imsi = tm.getSubscriberId(); // 取出IMSI System.out.println(tm.getCallState()); System.out.println(tm.getDataActivity()); System.out.println(tm.getDataState()); System.out.println("得到設(shè)備的ID,IMEI或者MEID:" + tm.getDeviceId()); System.out.println("軟件版本:"+tm.getDeviceSoftwareVersion()); if (tm.getLine1Number()!=null) { System.out.println("電話號碼:"+tm.getLine1Number()); } else { System.out.println("電話號碼為空"); } System.out.println("電信網(wǎng)路國別:" + tm.getNetworkCountryIso()); // 電信網(wǎng)路國別 System.out.println("電信公司代號:" + tm.getNetworkOperator()); System.out.println("電信公司名稱:" + tm.getNetworkOperatorName()); // System.out.println(tm.getNetworkType()); // 行動網(wǎng)路類型 String[] networkTypeArray = { "UNKNOWN", "GPRS", "EDGE", "UMTS", "CDMA", "EVDO 0", "EVDO A", "1xRTT", "HSDPA", "HSUPA", "HSPA" }; String networkType = networkTypeArray[tm.getNetworkType()]; System.out.println("行動網(wǎng)路類型:"+networkType); // System.out.println(tm.getPhoneType()); // 行動通訊類型 String[] phoneTypeArray = {"NONE", "GSM", "CDMA"}; String phoneType = phoneTypeArray[tm.getPhoneType()]; System.out.println("行動通訊類型:"+phoneType); System.out.println("sim國家代碼:"+tm.getSimCountryIso()); System.out.println(tm.getSimOperator()); System.out.println(tm.getSimOperatorName()); // System.out.println(tm.getSimSerialNumber()); System.out.println(tm.getSimState()); // System.out.println(tm.getSubscriberId()); // 手機 IMSI System.out.println(tm.getVoiceMailAlphaTag()); // System.out.println("得到位置信息,主要是當(dāng)前注冊小區(qū)的位置碼:"+tm.getCellLocation()); // System.out.println(tm.getNeighboringCellInfo()); // 手機漫游狀態(tài) String roamingStatus = tm.isNetworkRoaming() ? "漫游中" : "非漫游"; System.out.println(roamingStatus); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android調(diào)試技巧與常見問題解決方法匯總》、《Android開發(fā)入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android使用SmsManager實現(xiàn)短信發(fā)送功能
這篇文章主要為大家詳細介紹了Android使用SmsManager實現(xiàn)短信發(fā)送功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11非常實用的小功能 Android應(yīng)用版本的更新實例
這篇文章主要為大家詳細介紹了一個非常實用的小功能,Android應(yīng)用版本的更新實例,感興趣的小伙伴們可以參考一下2016-08-08Android使用Matrix旋轉(zhuǎn)圖片模擬碟片加載過程
這篇文章主要為大家詳細介紹了Android使用Matrix旋轉(zhuǎn)圖片模擬碟片加載過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03RxJava+Retrofit實現(xiàn)網(wǎng)絡(luò)請求封裝的方法
Retrofit是當(dāng)前應(yīng)用非常廣泛的網(wǎng)絡(luò)請求框架,通常結(jié)合RxJava來進行網(wǎng)絡(luò)請求,本文將展示一個采用RxJava+Retrofit的網(wǎng)絡(luò)請求demo,感興趣的可以了解一下2019-04-04一看就喜歡的loading動畫效果Android分析實現(xiàn)
一看就喜歡的loading動畫效果Android分析實現(xiàn),絢爛的效果,相信大家一定會喜歡,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-01-01Android入門之Fragment嵌套Fragment的用法詳解
這篇文章主要為大家詳細介紹了Android中如何實現(xiàn)Fragment嵌套Fragment的相關(guān)資料,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下2023-02-02Android 詳解Studio引用Library與導(dǎo)入jar
這篇文章主要介紹了Android Studio引用Library與導(dǎo)入jar的相關(guān)資料,需要的朋友可以參考下2017-01-01Android 標(biāo)準(zhǔn)Intent的使用詳解
這篇文章主要介紹了Android 標(biāo)準(zhǔn)Intent的使用詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03