我使用如下所示的addnewIncomingCall来显示来电ui屏幕
Bundle callInfo = new Bundle();
tm.addNewIncomingCall(handle, callInfo);
我还使用
connection.setAddress(Uri.parse("David561"), TelecomManager.PRESENTATION_ALLOWED);
更改主叫方id的步骤
问题是,当我在实际的手机(而不是应用程序)上查看通话记录时,我看到的是561
而不是David561
,如下所示:
我甚至试着给你打电话
connection.setCallerDisplayName("David561",TelecomManager.PRESENTATION_ALLOWED);
一点运气都没有。它去掉了字母,只保留了数字。我尝试为电话号码561
创建一个联系人,并将姓名设置为David
,但它实际上在呼叫历史记录中显示为David
。但我不希望用户必须创建联系人。我想要实现的目标是可能的吗?如果不是,那也没关系。我只想确认一下,不可能使用TelecomManager和ConnectionService将姓名显示在呼叫历史记录中。
发布于 2020-01-21 06:58:28
我不确定这个问题提出后是否发生了很大的变化,但通过测试我发现
connection.setAddress()
应包含用户的电话号码/地址,电话系统将使用该号码/地址回叫呼叫者
connection.setCallerDisplayName
应包含将显示在呼叫历史记录中的联系人的显示名称。
即,下面的代码将导致"Dave“显示在呼叫历史记录中,其联系号码填充为”+11231234 12345“。
connection.setAddress("+1 123 1234 12345")
connection.setCallerDisplayName("Dave")
注意:地址和CallerDisplayName都需要在联系人中设置,否则当收到来电时,联系人将在呼叫历史信息中显示为“未知”。
https://stackoverflow.com/questions/46390916
复制相似问题