zoukankan      html  css  js  c++  java
  • Android之TelephonyManager类

      TelephonyManager类是做应用时必须的工具。该类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,然后可以使用get方法获取相关数据。

      注意:有些通讯信息的获取对应用程序的权限有一定的限制,在开发的时候需要为其添加相应的权限

      1.<uses-permission android:name="android.permission.CALL_PHONE" />
      2.<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

      该类的方法和说明举例如下:(转自http://blog.163.com/liu_jun_y/blog/static/188086312201171572833546/ )

      1 /**
      2 *
      3 *@author dingran
      4 *创建日期 2010-4-29 下午05:02:47
      5 *
      6 */
      7 package net.sunniwell.app;
      8 import android.app.Activity;
      9 import android.os.Bundle;
     10 import android.telephony.CellLocation;
     11 import android.telephony.PhoneStateListener;
     12 import android.telephony.TelephonyManager;
     13 public class TelManager extends Activity {
     14 @Override
     15 protected void onCreate(Bundle savedInstanceState) {
     16   super.onCreate(savedInstanceState);
     17   TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
     18   
     19   /*
     20    * 电话状态:
     21    * 1.tm.CALL_STATE_IDLE=0          无活动
     22    * 2.tm.CALL_STATE_RINGING=1  响铃
     23    * 3.tm.CALL_STATE_OFFHOOK=2  摘机
     24    */
     25   tm.getCallState();//int
     26   
     27   /*
     28    * 电话方位:
     29    * 
     30    */
     31   tm.getCellLocation();//CellLocation
     32   
     33   /*
     34    * 唯一的设备ID:
     35    * GSM手机的 IMEI 和 CDMA手机的 MEID. 
     36    * Return null if device ID is not available.
     37    */
     38   tm.getDeviceId();//String
     39   
     40   /*
     41    * 设备的软件版本号:
     42    * 例如:the IMEI/SV(software version) for GSM phones.
     43    * Return null if the software version is not available. 
     44    */
     45   tm.getDeviceSoftwareVersion();//String
     46   
     47   /*
     48    * 手机号:
     49    * GSM手机的 MSISDN.
     50    * Return null if it is unavailable. 
     51    */
     52   tm.getLine1Number();//String
     53   
     54   /*
     55    * 附近的电话的信息:
     56    * 类型:List<NeighboringCellInfo> 
     57    * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
     58    */
     59   tm.getNeighboringCellInfo();//List<NeighboringCellInfo>
     60   
     61   /*
     62    * 获取ISO标准的国家码,即国际长途区号。
     63    * 注意:仅当用户已在网络注册后有效。
     64    *       在CDMA网络中结果也许不可靠。
     65    */
     66   tm.getNetworkCountryIso();//String
     67   
     68   /*
     69    * MCC+MNC(mobile country code + mobile network code)
     70    * 注意:仅当用户已在网络注册时有效。
     71    *    在CDMA网络中结果也许不可靠。
     72    */
     73   tm.getNetworkOperator();//String
     74   
     75   /*
     76    * 按照字母次序的current registered operator(当前已注册的用户)的名字
     77    * 注意:仅当用户已在网络注册时有效。
     78    *    在CDMA网络中结果也许不可靠。
     79    */
     80   tm.getNetworkOperatorName();//String
     81   
     82   /*
     83    * 当前使用的网络类型:
     84    * 例如: NETWORK_TYPE_UNKNOWN  网络类型未知  0
     85      NETWORK_TYPE_GPRS     GPRS网络  1
     86      NETWORK_TYPE_EDGE     EDGE网络  2
     87      NETWORK_TYPE_UMTS     UMTS网络  3
     88      NETWORK_TYPE_HSDPA    HSDPA网络  8 
     89      NETWORK_TYPE_HSUPA    HSUPA网络  9
     90      NETWORK_TYPE_HSPA     HSPA网络  10
     91      NETWORK_TYPE_CDMA     CDMA网络,IS95A 或 IS95B.  4
     92      NETWORK_TYPE_EVDO_0   EVDO网络, revision 0.  5
     93      NETWORK_TYPE_EVDO_A   EVDO网络, revision A.  6
     94      NETWORK_TYPE_1xRTT    1xRTT网络  7
     95    */
     96   tm.getNetworkType();//int
     97   
     98   /*
     99    * 手机类型:
    100    * 例如: PHONE_TYPE_NONE  无信号
    101      PHONE_TYPE_GSM   GSM信号
    102      PHONE_TYPE_CDMA  CDMA信号
    103    */
    104   tm.getPhoneType();//int
    105   
    106   /*
    107    * Returns the ISO country code equivalent for the SIM provider's country code.
    108    * 获取ISO国家码,相当于提供SIM卡的国家码。
    109    * 
    110    */
    111   tm.getSimCountryIso();//String
    112   
    113   /*
    114    * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.
    115    * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.
    116    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
    117    */
    118   tm.getSimOperator();//String
    119   
    120   /*
    121    * 服务商名称:
    122    * 例如:中国移动、联通
    123    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
    124    */
    125   tm.getSimOperatorName();//String
    126   
    127   /*
    128    * SIM卡的序列号:
    129    * 需要权限:READ_PHONE_STATE
    130    */
    131   tm.getSimSerialNumber();//String
    132   
    133   /*
    134    * SIM的状态信息:
    135    *  SIM_STATE_UNKNOWN          未知状态 0
    136    SIM_STATE_ABSENT           没插卡 1
    137    SIM_STATE_PIN_REQUIRED     锁定状态,需要用户的PIN码解锁 2
    138    SIM_STATE_PUK_REQUIRED     锁定状态,需要用户的PUK码解锁 3
    139    SIM_STATE_NETWORK_LOCKED   锁定状态,需要网络的PIN码解锁 4
    140    SIM_STATE_READY            就绪状态 5
    141    */
    142   tm.getSimState();//int
    143   
    144   /*
    145    * 唯一的用户ID:
    146    * 例如:IMSI(国际移动用户识别码) for a GSM phone.
    147    * 需要权限:READ_PHONE_STATE
    148    */
    149   tm.getSubscriberId();//String
    150   
    151   /*
    152    * 取得和语音邮件相关的标签,即为识别符
    153    * 需要权限:READ_PHONE_STATE
    154    */
    155   tm.getVoiceMailAlphaTag();//String
    156   
    157   /*
    158    * 获取语音邮件号码:
    159    * 需要权限:READ_PHONE_STATE
    160    */
    161   tm.getVoiceMailNumber();//String
    162   
    163   /*
    164    * ICC卡是否存在
    165    */
    166   tm.hasIccCard();//boolean
    167   
    168   /*
    169    * 是否漫游:
    170    * (在GSM用途下)
    171    */
    172   tm.isNetworkRoaming();//
    173   
    174   
    175   
    176 }
    177 }

      

  • 相关阅读:
    科学开源项目 : 建立一个 新的 光衍射 模型
    光不是电磁波 摩擦力不是电磁力
    收录一篇 贝尔不等式 的 文章
    数学家 程序员 哲学家 艺术家
    论 数学 的 工具性
    数学 怎么用?
    随便说说 广义相对论 的 时间膨胀
    逻辑物理学 : 光子 有 质量 吗 ?
    我对 “光子有质量 , 引力对光子有作用” 存疑
    收录一些 高等数学 的 文章
  • 原文地址:https://www.cnblogs.com/xuepeng0521/p/3674366.html
Copyright © 2011-2022 走看看