背景
在 Google 的“电话”应用程序中,有一个选项“来电显示和垃圾邮件”:
因此,如果您接到不在地址簿上的某人或某个组织的电话,但它以某种方式被识别,您会得到一个名称,例如(称为“+972-035283487”):
自 Android M (6.0 - API 23) 以来,应用程序可以替换默认的电话应用程序,然后通过扩展InCallService类,还可以在您呼叫某人或接听电话时提供替代 UI,如此处所示,基于此处。
问题
我想尝试显示与电话应用程序相同的信息,即个人/公司的名称,以防它识别(并且不在通讯簿上)。
我试过的
我试图挖掘通过拨号器的 API 获得的各种东西,但失败了:
android.telecom.Call类的各种字段和功能
Call 类中有getDetails,所以我试图获取里面的内容,并且“ statusHints ”中还有statusHints和“ label ”。这些都没有任何信息(返回 null)。我试图查看“statusHints”的原因是因为这就是我在文档中看到的:
包含通话中 UI 中显示的状态标签和图标。
- 在“电话”应用程序上,按“了解更多”会转到一个网站(此处),其中包含我认为可能是数据来源的链接,但我认为应用程序本身并不使用它。相反,我认为它使用了谷歌的东西。
问题
是否可以获得此 CallerId 信息?如果是这样,怎么做?
电话应用程序是如何做到的?它应该是开源的,所以必须有一些东西可以提供这些信息,对吧?克隆它会以某种方式获得这些信息吗?也许谷歌有自己的来电显示服务?
“callDetails”和“statusHints”有什么用?他们提供什么?