Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之獲取手機SIM卡信息

Android開發之獲取手機SIM卡信息

編輯:關於Android編程

TelephonyManager是一個管理手機通話狀態、電話網絡信息的服務類,該類提供了大量的getXxx(),方法獲取電話網絡的相關信息。

TelephonyManager類概述:


可用於訪問有關設備上的電話服務信息。應用程序可以使用這個類的方法來確定電話服務和狀態,以及訪問某些類型的用戶信息。應用程序還可以注冊一個偵聽器以接收的電話狀態變化通知。

你不能直接實例化這個類;相反,你可以通過Context.getSystemService(Context.TELEPHONY_SERVICE)方法還獲取初始化TelephonyManager實例。

需要注意的是訪問某些電話信息permission-protected。。你的應用程序應該獲得訪問手機位置和狀態的的一些權限。

TelephonyManager類提供的主要的方法:


Public Methods

int

getCallState()

返回一個常數,表示設備上的呼叫狀態

CellLocation

getCellLocation()

返回設備的當前位置。

int

getDataActivity()

返回一個常數,表示活動的數據連接的類型。

int

getDataState()

返回一個常數表示當前數據連接狀態

String

getDeviceId()

返回唯一的設備ID,例如,IMEI GSM和MEID CDMA手機。

String

getDeviceSoftwareVersion()

返回設備的軟件版本號,例如,的IMEI / SV GSM手機。

String

getLine1Number()

返回1號線的電話號碼,例如,MSISDN用於GSM電話。

List

getNeighboringCellInfo()

返回設備的相鄰小區信息。

String

getNetworkCountryIso()

返回注冊的網絡運營商的國家代碼

String

getNetworkOperator()

返回的MCC +跨國公司的注冊網絡運營商

String

getNetworkOperatorName()

返回注冊的網絡運營商的名字

int

getNetworkType()

返回一個常數,表示目前在設備上使用的無線電技術(網絡類型)。

int

getPhoneType()

返回設備的類型(手機制式)。

String

getSimCountryIso()

返回SIM卡運營商的國家代碼

String

getSimOperator()

返回MCC +跨國公司(移動國家代碼+移動網絡代碼)的提供者的SIM卡。

String

getSimOperatorName()

返回服務提供者的名稱(SPN)。

String

getSimSerialNumber()

返回SIM卡的序列號,如果適用的話。

int

getSimState()

返回一個常數表示SIM卡設備的狀態。

String

getSubscriberId()

返回唯一的用戶ID,例如,IMSI為GSM手機。

String

getVoiceMailAlphaTag()

檢索與語音信箱號碼相關的字母標識符。

String

getVoiceMailNumber()

返回語音信箱號碼。

boolean

hasIccCard()

boolean

isNetworkRoaming()

返回true,如果該設備被認為是漫游當前網絡上,支持GSM目的。

void

listen(PhoneStateListener listener, int events)

注冊一個偵聽器對象接收改變指定的電話狀態的通知。



應用實例:

運行效果圖:

\

TelephonyStatus類:


<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">package com.jph.telephonystatus; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.telephony.TelephonyManager; import android.widget.ListView; import android.widget.SimpleAdapter; /** * Describe:
* 獲取Sim卡信息 * 本實例通過TelephonyManager類的對象的getXxx() * 方法獲取手機Sim卡信息。 * @author jph * Date:2014.07.22 * */ public class TelephonyStatus extends Activity { ListView listShow; //創建一個tManager類的實例 TelephonyManager tManager; //聲明一個表示Sim卡狀態名的數組 String []statusName=new String[]{}; //聲明一個表示Sim卡狀態值得集合 ArrayListstatusValue=new ArrayList(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listShow=(ListView)findViewById(R.id.listShow); //獲取系統的tManager對象 tManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); //獲取表示各種狀態名的數組 statusName=getResources().getStringArray(R.array.statusName); //獲取表示sim卡狀態的的數組 String simStatus[]=getResources().getStringArray(R.array.simStatus); //獲取表示手機類型的數組 String phoneType[]=getResources().getStringArray(R.array.phoneType); //獲取設備編號 statusValue.add(tManager.getDeviceId()); //獲取設備類型 statusValue.add(phoneType[tManager.getPhoneType()]); //獲取軟件版本 statusValue.add(tManager.getDeviceSoftwareVersion()==null?"未知" :tManager.getDeviceSoftwareVersion()); //獲取設備當前位置 statusValue.add(tManager.getCellLocation()==null? "未知" :tManager.getCellLocation().toString()); //獲取設備呼叫狀態 switch (tManager.getCallState()) { case TelephonyManager.CALL_STATE_IDLE: statusValue.add("空閒"); break; case TelephonyManager.CALL_STATE_OFFHOOK: statusValue.add("正在通話"); break; case TelephonyManager.CALL_STATE_RINGING: statusValue.add("等待接聽"); break; default: break; } //獲取電話號碼 statusValue.add(tManager.getLine1Number()); //獲取運營商的國家代碼 statusValue.add(tManager.getNetworkCountryIso()); //獲取運營商的名稱 statusValue.add(tManager.getNetworkOperatorName()); //獲取網絡類型 statusValue.add(getNetworkType(tManager.getNetworkType())); //獲取SPN statusValue.add(tManager.getSimOperatorName().equals("")?"未知" :tManager.getSimOperatorName()); //獲取SIM卡的序列號 statusValue.add(tManager.getSimSerialNumber()); //獲取SIM卡狀態 statusValue.add(simStatus[tManager.getSimState()]); List> listItems=new ArrayList>(); // 遍歷statusValues集合,將statusNames、statusValues // 的數據封裝到List>集合中 for (int i = 0; i < statusName.length; i++) { MaplistItem=new HashMap(); listItem.put("name",statusName[i]); listItem.put("value",statusValue.get(i)); listItems.add(listItem); } SimpleAdapter adapter=new SimpleAdapter(this, listItems, R.layout.line, new String[]{"name","value"},new int[]{R.id.txtName,R.id.txtValue}); //為listShow設置Adapter listShow.setAdapter(adapter); } //獲取手機網絡類型 private String getNetworkType(int networkType) { // TODO Auto-generated method stub switch (networkType) { case TelephonyManager.NETWORK_TYPE_1xRTT: return "1xRTT"; case TelephonyManager.NETWORK_TYPE_CDMA: return "CDMA"; case TelephonyManager.NETWORK_TYPE_EDGE: return "EDGE"; case TelephonyManager.NETWORK_TYPE_EHRPD: return "EHRPD"; case TelephonyManager.NETWORK_TYPE_EVDO_0: return "EVDO_0"; case TelephonyManager.NETWORK_TYPE_EVDO_A: return "EVDO_A"; case TelephonyManager.NETWORK_TYPE_EVDO_B: return "EVDO_B"; case TelephonyManager.NETWORK_TYPE_GPRS: return "GPRS"; case TelephonyManager.NETWORK_TYPE_HSDPA: return "HSDPA"; case TelephonyManager.NETWORK_TYPE_HSPA: return "HSPA"; case TelephonyManager.NETWORK_TYPE_HSPAP: return "HSPAP"; case TelephonyManager.NETWORK_TYPE_HSUPA: return "HSUPA"; case TelephonyManager.NETWORK_TYPE_IDEN: return "IDEN"; case TelephonyManager.NETWORK_TYPE_LTE: return "LTE"; case TelephonyManager.NETWORK_TYPE_UMTS: return "UMTS"; case TelephonyManager.NETWORK_TYPE_UNKNOWN: return "UNKNOWN"; default: return "UNKNOWN"; } } } array.xml




    
    
        設備編號
        手機制式
        軟件版本
        設備當前位置
        設備呼叫狀態
        電話號碼
        運營商的國家代碼
        運營商的名稱
        網絡類型
        SPN
        SIM卡的序列號
        SIM卡狀態
    
    
    
        未知
        GSM
        CDMA
    
    
    
	    狀態未知
		無SIM卡
		被PIN加鎖
		被PUK加鎖
		被NetWork PIN加鎖
		已准備好
    


AndroidManifest.xml



	
	
	
關於TelephonyManager其它實際應用可參照:Android開發之監聽手機來電


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved