ConnectionService TelecomManager未正确显示在呼叫历史记录中

时间:2017-09-24 14:06:31

标签: java android

我使用addnewIncomingCall,如下所示显示来电ui屏幕

Bundle callInfo = new Bundle();
tm.addNewIncomingCall(handle, callInfo);

我也用

connection.setAddress(Uri.parse("David561"), TelecomManager.PRESENTATION_ALLOWED);

更改来电显示

enter image description here

问题是,当我在实际手机(而不是应用)上查看通话记录时,我会看到561而不是David561,如下所示:

enter image description here

我甚至尝试过调用

connection.setCallerDisplayName("David561",TelecomManager.PRESENTATION_ALLOWED);
没有任何运气。它会删除字母并仅保留数字。我尝试为电话号码561创建联系人,并将名称设置为David,并在呼叫历史记录中显示为David。但我不希望用户必须创建联系人。我试图实现的目标是什么?如果没有,那没关系。我只是想确认使用TelecomManager和ConnectionService无法使名字出现在通话记录中。

1 个答案:

答案 0 :(得分:0)

不确定自问这个问题以来它是否有很大变化,但是通过测试,我发现了

connection.setAddress()

应包含电话系统将用于回叫呼叫者的用户的电话号码/地址和

connection.setCallerDisplayName

应包含将在通话记录中显示的联系人的显示名称。

即下面的代码将导致“ Dave”显示在通话记录中,并且其联系人号码填充为“ +1 123 1234 12345”。

connection.setAddress("+1 123 1234 12345")
connection.setCallerDisplayName("Dave")

注意:需要在联系人中同时设置“地址”和“ CallerDisplayName”,否则在通话记录信息中以及收到来电时,联系人将显示为“未知”。