TelephonyManager類:Android手機及Sim卡狀態的擷取

來源:互聯網
上載者:User
轉載地址:http://blog.csdn.net/sunxingzhesunjinbiao/article/details/7021328
Android本機號碼及Sim卡狀態的擷取

TelephonyManager這個類很有用,可以得到很多關於手機和Sim卡的資訊。 
直接上注釋後的代碼,請享用

package net.sunniwell.app;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.CellLocation;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
public class TelManager extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
  
  /*
   * 電話狀態:
   * 1.tm.CALL_STATE_IDLE=0            無活動
   * 2.tm.CALL_STATE_RINGING=1     響鈴
   * 3.tm.CALL_STATE_OFFHOOK=2  摘機
   */
  tm.getCallState(); //int
  
  /*
   * 電話方位:
   */
  tm.getCellLocation(); //CellLocation
  
  /*
   * 唯一的裝置ID:
   * GSM手機的 IMEI 和 CDMA手機的 MEID. 
   * Return null if device ID is not available.
   */
  tm.getDeviceId();//String
  
  /*
   * 裝置的軟體版本號碼:
   * 例如:the IMEI/SV(software version) for GSM phones.
   * Return null if the software version is not available. 
   */
  tm.getDeviceSoftwareVersion(); //String
  
  /*
   * 手機號:
   * GSM手機的 MSISDN.
   * Return null if it is unavailable. 
   */
  tm.getLine1Number();//String
  
 /*
   * 附近的電話的資訊:
   * 類型:List<NeighboringCellInfo> 
   * 需要許可權:android.Manifest.permission#ACCESS_COARSE_UPDATES
   */
  tm.getNeighboringCellInfo(); //List<NeighboringCellInfo>
  
  /*
   * 擷取ISO標準的國家碼,即國際長途區號。
   * 注意:僅當使用者已在網路註冊後有效。
   *       在CDMA網路中結果也許不可靠。
   */
  tm.getNetworkCountryIso();//String
  
  /*
   * MCC+MNC(mobile country code + mobile network code)
   * 注意:僅當使用者已在網路註冊時有效。
   *    在CDMA網路中結果也許不可靠。
   */
  tm.getNetworkOperator();//String
  
  /*
   * 按照字母次序的current registered operator(當前已註冊的使用者)的名字
   * 注意:僅當使用者已在網路註冊時有效。
   *    在CDMA網路中結果也許不可靠。
   */
  tm.getNetworkOperatorName();//String
  
  /*
   * 當前使用的網路類型:
   * 例如: NETWORK_TYPE_UNKNOWN  網路類型未知  0
   * NETWORK_TYPE_GPRS     GPRS網路  1
   * NETWORK_TYPE_EDGE     EDGE網路  2
   * NETWORK_TYPE_UMTS     UMTS網路  3
   * NETWORK_TYPE_HSDPA    HSDPA網路  8 
   * NETWORK_TYPE_HSUPA    HSUPA網路  9
   * NETWORK_TYPE_HSPA     HSPA網路  10
   * NETWORK_TYPE_CDMA     CDMA網路,IS95A 或 IS95B.  4
   * NETWORK_TYPE_EVDO_0   EVDO網路, revision 0.  5
   * NETWORK_TYPE_EVDO_A   EVDO網路, revision A.  6
   * NETWORK_TYPE_1xRTT    1xRTT網路  7
   */
  tm.getNetworkType(); //int
  
  /*
   * 手機類型:
   * 例如: PHONE_TYPE_NONE  無訊號
   * PHONE_TYPE_GSM   GSM訊號
   * PHONE_TYPE_CDMA  CDMA訊號
   */
  tm.getPhoneType(); //int
  
  /*
   * Returns the ISO country code equivalent for the SIM provider's country code.
   * 擷取ISO國家碼,相當於提供SIM卡的國家碼。
   */
  tm.getSimCountryIso(); //String
  
  /*
   * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.
   * 擷取SIM卡提供的移動國家碼和移動網路碼.5或6位的十進位數字.
   * SIM卡的狀態必須是 SIM_STATE_READY(使用getSimState()判斷).
   */
  tm.getSimOperator(); //String
  
  /*
   * 服務商名稱:
   * 例如:中國移動、聯通
   * SIM卡的狀態必須是 SIM_STATE_READY(使用getSimState()判斷).
   */
  tm.getSimOperatorName(); //String
  
  /*
   * SIM卡的序號:
   * 需要許可權:READ_PHONE_STATE
   */
  tm.getSimSerialNumber(); //String
  
  /*
   * SIM的狀態資訊:
   *  SIM_STATE_UNKNOWN             未知狀態 0
   *  SIM_STATE_ABSENT                 沒插卡 1
   *  SIM_STATE_PIN_REQUIRED     鎖定狀態,需要使用者的數字 PIN 碼解鎖 2
   *  SIM_STATE_PUK_REQUIRED    鎖定狀態,需要使用者的PUK碼解鎖 3
   *  SIM_STATE_NETWORK_LOCKED   鎖定狀態,需要網路的數字 PIN 碼解鎖 4
   *  SIM_STATE_READY            就緒狀態 5
   */
  tm.getSimState();//int
  
  /*
   * 唯一的使用者ID:
   * 例如:IMSI(國際移動使用者識別碼) for a GSM phone.
   * 需要許可權:READ_PHONE_STATE
   */
  tm.getSubscriberId(); //String
  
  /*
   * 取得和語音信箱相關的標籤,即為識別符
   * 需要許可權:READ_PHONE_STATE
   */
  tm.getVoiceMailAlphaTag();//String
  
  /*
   * 擷取語音信箱號碼:
   * 需要許可權:READ_PHONE_STATE
   */
  tm.getVoiceMailNumber();//String
  
  /*
   * ICC卡是否存在
   */
  tm.hasIccCard();//boolean
  
  /*
   * 是否漫遊:
   * (在GSM用途下)
   */
  tm.isNetworkRoaming(); //
  
}
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.