041103_电话服务 Android安卓开发课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TelephonyManager类 在Android中,接听和拨打电话也是一项服务,那么这就意味着用户可以按照自己的方式进行电话的若干操作,用户如果要想取得电话服务,则直接使用getSystemService()方法,取得Context.TELEPHONY_SERVICE服务,而取得的服务对象类型为android.telephony.TelephonyManager。 listen()方法 TelephonyManager类中最重要的就是listen()方法,通过此方法可以绑定一个PhoneStateListener类的对象,以完成对电话各个状态的监听,而在此类之中用户主要是通过一个onCallStateChanged()方法进行来去电的监听处理,而此方法的定义如下: public void onCallStateChanged(int state, String incomingNumber){} 在onCallStateChanged()方法上定义了两个变量,两个变量的作用如下: state:判断电话的操作状态,返回的内容是表所示的三个常量; incomingNumber:拨入的电话号码; 范例:定义电话监听服务 —— PhoneService 范例:定义电话服务的广播接收器 —— PhoneBroadcastReceiver 范例:配置AndroidManifest.xml权限 范例:发现你的私人秘密 —— 电话窃听器 掌握了电话监听的原理之后,下面就可以利用TelephonyManager和PhoneStateListener一起完成一个更有意思的小功能,就是直接对用户的来去电进行监听,也就是所谓的电话监视程序。 范例:监视你的来电情况 —— 偷偷发短信 可以再继续扩充一些小的功能,例如:使用短信服务来偷偷的监听用户的电话情况(例如监听对方操作电话号码、日期时间等信息),这样的功能就可以通过PhoneStateListener与SmsManager联合操作完成。 范例:实现手机黑名单 手机来电后发现是不愿意接听的号码,这个时候又觉得手动挂掉就很麻烦,那干脆就让手机静音吧,这样至少可以让自己不再烦心,而这样的功能在Android之中就可以继续利用手机服务来完成,但是如果要想实现静音的操作则还需要android.media.AudioManager类的支持,使用此类来设置黑名单来电时的手机静音操作完成。 AIDL AIDL(Android Interface Definition Language,Android接口描述语言),指的是可以在不同的进程间进行数据的共享操作,主要是基于RPC(Remote Procedure Call,远程过程调用)方式来实现。 最早的时候Android中提供了自动挂断电话的功能,但是随着版本的升高,这些功能也已经被逐步隐藏起来,所以现在用户根本就无法进行直接调用了,但是不能直接调用并不表示不可以间接调用,而要想间接的完成调用则必须要依靠AIDL技术完成。 范例:定义一个AIDL描述文件 —— ITelephony.aidl E-MAIL:mldnqa@163.com ? MLDN 软件教学研发部 Android开发实战经典 第11章:手机服务 —— 电话服务 李兴华 北京魔乐科技软件学院 本章目标 可以实现对电话呼出与拨入的监控; 实现电话的监控功能; 实现电话的窃听功能; 实现手机黑名单功能; 可以使用AIDL挂断来电; 设置手机状态监听 普通 public void listen(PhoneStateListener listener, int events) 8 取得SIM卡的序号 普通 public String getSimSerialNumber() 7 取得电话的连接网络类型 普通 public int getPhoneType() 6 取得电话号码 普通 public String getLine1Number() 5 取得呼叫状态 普通 public int getCallState() 4 当有电话进入时的状态码 常量 public static final int CALL_STATE_RINGING 3 当电话接通时(接电话或拨出电话)的状态码 常量 public static final int CALL_STATE_OFFHOOK 2 电话没有任何拨出或打入操作时的状态码 常量 public static final int CALL_STATE_IDLE 1 描述 类型 方法 No. private class PhoneStateListenerImpl extends PhoneStateListen

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档