TelecomManager与TelephonyManager区别与分析

本文探讨Android 5.0后引入的TelecomManager与原有的TelephonyManager之间的联系与差异。作者指出,TelecomManager并非完全替代TelephonyManager,而是提供了不同的功能接口。TelephonyManager主要用于查询和监听电话相关状态,而TelecomManager允许更多的操作。在Android 5.0之前,第三方App通过Intent调用系统电话应用拨号。文章强调,这些操作始终限制在应用层,电话拨号的实际控制权在于系统电话应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

许久没有写Blog了,其实这段时间的工作,可以写的内容有很多,但是其一是因为工作太忙了没有时间进行整理,其二则是自己懒了,说是没有时间,但是如果想的话,总能找到时间来进行的,不是吗?

这次我想讨论的话题是关于Android 5.0之后出现的TelecomManager,以及一直就存在的TelephonyManager,它们之间的联系以及差别。

我之前在网上有看到这方面的资料,基本的观点是TelecomManager算是对TelephonyManager的一种替代实现或者补充,通过我对源码进行挖掘,我感觉这么说是一种相当不负责的说法,所以我想这方面进行分析,得出我认为正确的观点与看法。

首先,我们来看看这两个类对第三方App所提供的调用接口,先从功能层面上了解其不同:

以下为TelephonyManager中所提供的部分API

这里写图片描述

以下为TelecomManager中所提供的部分API

这里写图片描述

从图中结合日常的工作经历可以知道,TelepnonyManager主要是用来对Telephony相关的信息进行查询,同时提供相关的监听接口对Telephony的状态变化进行监听,从中我们可以看出一个结论,那就是:TelephonyManager从始自终都不能对Telephony做出任何动作,也就是说TelephonyManager所提供的接口是Android系统内部一直就在运行存在的,不会因为TelephonyManager的存在与否出现任何变化,TelephonyManager所要做的就是提供这部分一直存在的信息,至于App想用这部分信息对自己的App进行什么操作不关心,也不会影响到Android的Telephpny框架。说了这么多,我想表明TelephonyManager一直都是让Android App处于Android Telephony的外围,没有任何对于Telephony的操作权限。

我想请各位回想下,在Android 5.0之前,我们若是想在自己的第三方的App里面的进行打电话之类的操作是怎么进行的?这个很简单嘛,只需组装号码信息,然后通过Intent,bundle就可以唤醒Phone应用的呼叫界面,然后用户自行进行电话的拨打。这里其实有个问题,通过这种操作方式的话,实际上,我们还是在应用层进行操作的,虽然也进行跨进程操作,将操作转移到了系统的Phone App里来进行的,但是其实之后的操作都被Phone应用接管,作为第三方App,我们所作的其实非常有限。

当然,若是在自己的自有平台上进行开发,那么可以说,你想怎么搞就怎么搞,更不用说是让第三方打电话这种功能了,但是这个不具有普遍性,暂且不讨论这方面的内容。

懒癌犯了,明日继续写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值