我使用addnewIncomingCall,如下所示显示来电ui屏幕
Bundle callInfo = new Bundle();
tm.addNewIncomingCall(handle, callInfo);
我也用
connection.setAddress(Uri.parse("David561"), TelecomManager.PRESENTATION_ALLOWED);
更改来电显示
问题是,当我在实际手机(而不是应用)上查看通话记录时,我会看到561
而不是David561
,如下所示:
我甚至尝试过调用
connection.setCallerDisplayName("David561",TelecomManager.PRESENTATION_ALLOWED);
没有任何运气。它会删除字母并仅保留数字。我尝试为电话号码561
创建联系人,并将名称设置为David
,并在呼叫历史记录中显示为David
。但我不希望用户必须创建联系人。我试图实现的目标是什么?如果没有,那没关系。我只是想确认使用TelecomManager和ConnectionService无法使名字出现在通话记录中。
答案 0 :(得分:0)
不确定自问这个问题以来它是否有很大变化,但是通过测试,我发现了
connection.setAddress()
应包含电话系统将用于回叫呼叫者的用户的电话号码/地址和
connection.setCallerDisplayName
应包含将在通话记录中显示的联系人的显示名称。
即下面的代码将导致“ Dave”显示在通话记录中,并且其联系人号码填充为“ +1 123 1234 12345”。
connection.setAddress("+1 123 1234 12345")
connection.setCallerDisplayName("Dave")
注意:需要在联系人中同时设置“地址”和“ CallerDisplayName”,否则在通话记录信息中以及收到来电时,联系人将显示为“未知”。