我使用如下所示的 addnewIncomingCall 来显示来电 ui 屏幕
Bundle callInfo = new Bundle();
tm.addNewIncomingCall(handle, callInfo);
Run Code Online (Sandbox Code Playgroud)
我也用
connection.setAddress(Uri.parse("David561"), TelecomManager.PRESENTATION_ALLOWED);
Run Code Online (Sandbox Code Playgroud)
更改来电显示
问题是,当我在实际电话(不是应用程序)上检查通话记录时,我看到的561不是David561如下所示:
我什至试着打电话
connection.setCallerDisplayName("David561",TelecomManager.PRESENTATION_ALLOWED);
Run Code Online (Sandbox Code Playgroud)
没有任何运气。它去掉字母,只保留数字。我尝试为电话号码创建联系人561并将姓名设置为David,它实际上显示David在通话记录中。但我不希望用户必须创建联系人。我正在努力实现的目标是可能的吗?如果没有,那没关系。我只想确认使用 TelecomManager 和 ConnectionService 无法让姓名出现在通话记录中。
不确定自从提出这个问题以来它是否发生了很大变化,但通过测试我发现
connection.setAddress()
Run Code Online (Sandbox Code Playgroud)
应包含电话系统用于回拨呼叫者的用户的电话号码/地址,以及
connection.setCallerDisplayName
Run Code Online (Sandbox Code Playgroud)
应包含将显示在通话历史记录中的联系人的显示名称。
即,下面的代码将导致“Dave”显示在通话记录中,并且他的联系号码填充为“+1 123 1234 12345”。
connection.setAddress("+1 123 1234 12345")
connection.setCallerDisplayName("Dave")
Run Code Online (Sandbox Code Playgroud)
注意:地址和来电显示名称都需要在联系人中设置,否则在通话记录信息和收到来电时,该联系人将显示为“未知”。
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |