Android中的Telephony学习笔记

Posted yfceshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中的Telephony学习笔记相关的知识,希望对你有一定的参考价值。

上一篇文章中学习了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)


注冊一个监听器,当指定的手机状态改变时,接收该手机发出的通知




















































































































以上是关于Android中的Telephony学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Android中ActivityManager学习笔记

android framework的opt/telephony是啥进程

[原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map(代码片

android.provider.Telephony.SMS_RECEIVED 的广播者权限

Unity Shader入门精要学习笔记 - 第16章 Unity中的渲染优化技术

如何导入com.android.internal.telephony