在Google的“ Phone”应用中,有一个“来电显示和垃圾邮件”选项:
因此,如果您收到不在地址簿上的某个人或某个组织的呼叫,但是以某种方式被识别,您将为其命名,例如(称为“ + 972-035283487”):< / p>
从Android M(6.0-API 23)开始,应用程序可以替换默认的电话应用程序,然后在您呼叫某人或接到电话时,还可以通过扩展InCallService类来提供备用UI,如{基于here的{3}}。
我想尝试显示与“电话”应用程序上相同的信息,这表示个人/公司的名称,以防万一它(而不是在通讯录上)识别该信息。
我试图对通过拨号器的API获得的各种信息进行挖掘,但是失败了:
here类
Call类中有android.telecom.Call,因此我尝试获取其中的内容,并且“ {{ 3}}”。这些都没有任何信息(返回null)。我尝试查看“ statusHints”的原因是因为这是我在文档上看到的:
包含在通话界面中显示的状态标签和图标。
是否可以获取此CallerId信息?如果是这样,怎么办?
“电话”应用程序如何实现?它应该是开源的,所以必须有一些东西可以提供此信息,对吗?克隆它会以某种方式获得此信息吗?也许Google拥有自己的CallerID服务?
“ callDetails”和“ statusHints”分别用于什么?他们提供什么?
答案 0 :(得分:2)
我相信Android的本地电话应用程序正在使用Google的位置搜索API。由于您可以通过其电话号码轻松搜索地点,并获取地点详细信息,例如名称,地点ID,formatted_address以及可以在the documentation
中找到的许多其他字段请求网址: https://maps.googleapis.com/maps/api/place/findplacefromtext/json
请求方法:GET
请求查询参数:
- 密钥:您应用程序的API密钥。
- 输入:用于指定要搜索的位置的文本输入(例如姓名或电话号码)。
- 输入类型:输入的类型。这可以是 文字查询或电话号码之一。电话号码必须在 国际格式(以加号(“ +”)开头,后跟 国家/地区代码,然后是电话号码本身。
示例响应:
{
"candidates" : [
{
"name" : "מלך העופות",
"place_id" : "ChIJ78ko1zBKHRURpwbgUdWc4nU"
},
{
"name" : "Of Yaakov",
"place_id" : "ChIJv3myn4FMHRURUGffcXgxKuw"
}
],
"status" : "OK"
}
注意: 目前,此类API在Android的Google Places SDK中尚不可用,但是您可以直接在应用中使用HTTP API,也可以在后端制作一个API作为places API的代理。我更喜欢更高版本,因为在第一个解决方案中,API密钥已部署在应用程序代码中,黑客可能会反编译APK并出于恶意原因使用它。出于安全考虑,如果使用后端解决方案,则必须将API密钥的使用限制为服务器的IP地址!
答案 1 :(得分:1)
我试图反编译Dialer应用程序,找不到有关该应用程序运行方式的特定信息。
但是此信息可能有用。请检查一下。
在Dialer应用程序中,有SpamCallDatabase_Impl.smali SpamCallDatabase.smali
类
com.google.android.gms应用程序包中有运行的服务,其中提供了垃圾邮件列表
com.google.android.gms/.telephonyspam.sync.SpamListSyncTaskService
并为呼叫者ID检查此提交
这看起来是血统OS的Dialer应用程序 并且它使用不同的服务进行电话号码查找,例如
https://auskunft.at/
https://www.dastelefonbuch.de/
答案 2 :(得分:0)
我相信Google拥有自己的垃圾邮件呼叫者数据库,并且“电话”应用将其号码发送到其服务器,并且如果匹配,它将显示名称。
也许,如果您的应用程序可以读取通知,则可以检索该名称。尝试this示例并根据您的需要进行修改
答案 3 :(得分:0)
默认情况下,为Google Phone app提供了使用呼叫者ID和垃圾邮件保护功能。其中一些步骤仅适用于Android 6.0及更高版本。
拨打或接听带有呼叫者ID和垃圾邮件保护功能的电话时,您会看到联系人中没有的有关呼叫者或企业的信息,或者有关潜在垃圾邮件呼叫者的警告。
要使用呼叫者ID和垃圾邮件保护功能,您的手机可能需要将有关您的呼叫的信息发送给Google。
关闭或重新打开呼叫者ID和垃圾邮件防护功能
默认情况下,呼叫者ID和垃圾邮件保护处于启用状态。您可以选择将其关闭。
要使用呼叫者ID和垃圾邮件保护功能,您的手机可能需要将有关您的呼叫的信息发送给Google。它不控制您拨打电话时是否显示您的号码。
Google的来电显示显示带有“ Google我的商家”列表的公司和服务的名称。它还会在任何显示工作或学校帐户呼叫者信息的目录中查找匹配项。
根据您的解决方案,Google不会根据您的需要提供这种支持。您需要创建自己的功能并在您身边保存垃圾邮件和其他联系方式。