[FAQ09156]ITelephony与TelephonyManager/TelephonyManagerEx介绍

 简要介绍ITelephony与TelephonyManager/TelephonyManagerEx,并说明他们的使用场景。

 

[SOLUTION]

ITelephony

    ITelephony接口的代码实现是PhoneInterfaceManager.java,即PhoneInterfaceManager.java继承并实现了ITelephony.Stub。PhoneInterfaceManager.java在PhoneApp onCreate()时启动,并作为名称为“phone”的Service注册到ServiceManager中。调用其中的接口(我们以查看sim为例),可以使用如下代码:

             

用途:在使用平台开发时,其他应用可以通过ITelephony获取到一些Telephony相关信息。

 

TelephonyManager

    TelephonyManager.java文件,主要是利用ITelephony、IPhoneSubInfo与ITelephonyRegistry来实现其功能,例如同样我们以hasIccCard()为例,这个函数在TelephonyManager中的实现是:

             

    可见,TelephonyManager.java可以通过ITelephony来实现跨进程调用。此外TelephonyManager中提供listen()接口实现PhoneStateListener相关监听功能。使用方式大致如下:

用途:

1、 使用SDK开发或者平台开发时,调用相关接口获取Telephony相关信息;

2、 使用SDK开发或者平台开发时,调用listen(PhoneStateListener listener, int events),实现Telephony消息监听。

 

 

 

TelephonyManagerEx

    TelephonyManagerEx.java文件,由MTK平台特有双卡接口的实现。与TelephonyManager类似,主要是利用ITelephony、IPhoneSubInfo与ITelephonyRegistry来实现其功能。使用方式也与TelephonyManager是类似的:

 

用途:

1、 使用SDK开发或者平台开发时,调用相关双卡接口获取Telephony相关信息;

2、 使用SDK开发或者平台开发时,调用listenGemini(PhoneStateListener listener, int events, int simId),实现Telephony监听双卡消息。

 

 

 

最终结论:

1、 ITelephony使用在平台开发上,跨进程调用到phone进程获取相关Telephony信息;

2、 当使用SDK开发时,仅能使用TelephonyManager或者TelephonyManagerEx接口,无法使用ITelephony

3、 当使用SDK开发且需要使用双卡接口时,请尽量使用TelephonyManagerEx

 

若是需要做相关接口的客制化,请参考FAQ09347   如何在ITelephonyTelephonyManager/TelephonyManagerEx中开出接口使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值