Android中的Telephony学习笔记(2)
上一篇文章中学习了 android.provider 中 Telephony 类。
这一篇文章学习 android.telephony 包中的类,这些类是 android 提供给上层调用的 API。
为监測基本电话信息提供的一系列的 API。比如网络类型,连接状态。操作电话号码的工具类。
一共 25 个类。以下逐一介绍:
TelephonyManager
处理设备上的电话服务信息,应用能够使用这些方法检測电话的状态,处理用户的信息类型。也能够注冊一个监听器接受电话状态改变的通知。该类不能直接实例化,能够通过
- Context.getSystemService(Context.TELEPHONY_SERVICE)
来获得该实例。假设想訪问受保护的信息,须要在配置文件中配置对应的权限才干訪问。
Constants
- ACTION_PHONE_STATE_CHANGE:当 call 状态改变时发送一个广播意图。
- ACTION_RESPOND_VIA_MESSAGE:当用户使用短信拒接时,发送一个意图电泳 sms app 去发送短信
- CALL_STATE_IDLE:设备状态:no activity
- CALL_STATE_OFFHOOK:设备状态:挂断
- CALL_STATE_RINGING:设备状态:有电话呼叫
- DATA_ACTIVITY_DORMANT:数据连接处于活动状态,可是物理连接时关闭的
- DATA_ACTIVITY_IN:数据连接处于活动状态, 当前接受 IP PPP 流量
- DATA_ACTIVITY_INOUT:接受和发送 IP PPP 流量
- DATA_ACTIVITY_NONE:数据连接处于活动状态,可是无流量
- DATE_ACTIVITY_OUT:数据连接属于连接状态,发送 IP PPP 流量
- DATA_CONNECTED:数据连接状态:已连接
- DATA_CONNECTING: 正在建立数据连接
- DATA_DISCONNECTED: 数据连接断开
- DATA_SUSPENDED:数据连接中断
- EXTRA_INCOMING_NUMBER:当 call 状态改变时发送意图里面包括的来电电话号码
- EXTRA_STATE:来电状态
- NETWORK_TYPE_1xRTT:2G 网络
- NETWORK_TYPE_CDMA:码分多址协议
- NETWORK_TYPE_EDGE:即增强型数据速率 GSM 演进技术, GSM 过渡到 3G 的协议
- NETWORK_TYPE_EHRPD:CDMA 过渡到 LTE 的协议
- NETWORK_TYPE_EVDO_0:EVDO_0 网络类型
- NETWORK_TYPE_EVDO_A:EVDO_A 网络类型
- NETWORK_TYPE_EVDO_B:EVDO_B 网络类型
- NETWORK_TYPE_GPRS:GRPS(通用分组无线服务技术)网络类型
- NETWORK_TYPE_HSDPA:HSDPA 网络类型
- NETWORK_TYPE_HSPAP:HSPAP(快速下行分组接入,3.5G)网络类型
- NETWORK_TYPE_HSUPA:HSUPA(快速上行链路分组接入)网络类型
- NETWORK_TYPE_IDEN:IDEN(集群通信系统)网络类型
- NETWORK_TYPE_LTE:LTE(长期演进技术。UMTS 的进步版)网络类型
- NETWORK_TYPE_UMTS:UMTS(通用移动通信系统)网络类型
- NETWORK_TYPE_UNKNOWN:未知网络类型
- PHONE_TYPE_CDMA:CDMA 格式的手机
- PHONE_TYPE_GSM:GSM 格式的手机
- PHONE_TYPE_NONE:没有手机射频
- PHONE_TYPE_SIP:基于 SIP 协议的手机
- SIM_STATE_ABSENT:SIM 卡状态:查找不到
- SIM_STATE_NETWORK_LOCKED:SIM 状态:锁定,须要网络 PIN 码解锁
- SIM_STATE_PIN_REQUIRED:SIM 状态:锁定。须要用户 PIN 码解锁
- SIM_STATE_PUK_REQUIRED:SIM 卡状态:锁定。须要解锁卡解锁
- SIM_STATE_READY:SIM 卡状态:准备 (Ready)
- SIM_STATE_UNKNOWN:SIM 卡状态:未知 (Unknown)
Methods
List<CellInfo> getAllCellInfo()
得到全部电元信息
int getCallState()
当前通话状态
CellLocation getCellLocation()
获取当前设备的位置
int getDataActivity()
数据连接中的 activity 的类型
int getDataState()
数据连接的状态
String getDeviceId()
设备的 ID 号
String getDeviceSoftwareVersion()
设备的软件版本号
String getGroupIdLevel1()
GSM 手机的 groupId level1
String getLine1Number()
获取 1 号线的电话号码,比如 GSM 手机的 MSISDN。须要权限:READ_PHONE_STATE.
String getMmsUAProfUrl()
短信代理商的 URL
String getMmsUserAgent()
短信代理商
List<NeighboringCellInfo> getNeighboringCellInfo()
获取全部邻电元信息
String getNetworkCountryIso()
网络运营商的国家码 MCC
String getNetworkOperator()
网络注冊运营商的 MCC+MNC 码
String getNetworkOperatorName()
网络运营商的名称
String getNetworkType()
网络类型
String getPhoneType()
手机类型
String getSimCountryIso()
ISO 提供的国家代码
String getSimOperator()
获取 SIM 卡 5 位或 6 位移动国家码 MCC + 移动网络码 MNC
String getSimOperatorName()
得到服务提供商的名称
String getSimSerialNumber()
得到 sim 串口号
String getSimState()
得到 sim 卡的状态
String getSubscriberId()
唯一用户标识 ID。
代表用户的身份,比如 GSM 手机的 IMSI 号
String getVoiceMailAlphaTag()
得到与语音信箱号码有关的字母标识符, 须要权限 READ_PHONE_STATE;
String getVoiceMailNumber()
得到语音信箱的号码
boolean hasIccCard()
是否含有 ICC 卡
boolean isNetworkRoaming()
是否漫游
void listen(PhoneStateListenter,int)
注冊一个监听器,当指定的手机状态改变时,接收该手机发出的通知
来源: http://www.bubuko.com/infodetail-2230541.html