Java 未设置Linphone PeerAddress DisplayName

Java 未设置Linphone PeerAddress DisplayName,java,linphone,Java,Linphone,我正在使用Linphone创建一个应用程序。我正在使用以下代码创建一个新的LinPhone聊天室: public void createNewChatRoom(String destination, String name) { LinphoneChatRoom[] rooms = core.getChatRooms(); for (LinphoneChatRoom room : rooms) { Log.d("name1: " + room.getPeerAddress()

我正在使用Linphone创建一个应用程序。我正在使用以下代码创建一个新的LinPhone聊天室:

public void createNewChatRoom(String destination, String name)
{
  LinphoneChatRoom[] rooms = core.getChatRooms();
  for (LinphoneChatRoom room : rooms)
  {
    Log.d("name1: " + room.getPeerAddress().getDisplayName());
  }
  LinphoneChatRoom room = core.getOrCreateChatRoom(destination);
  if (room != null)
  {
    room.getPeerAddress().setDisplayName(name);
  }
  rooms = core.getChatRooms();
  for (LinphoneChatRoom room2 : rooms)
  {
    Log.d("name2: " + room2.getPeerAddress().getDisplayName());
  }
}
在房间的第一次迭代(name1迭代)中,我得到的所有显示名称都是空的。在房间的第二次迭代(name2迭代)中,确实添加了一个新房间,数组的大小为+1,但是,所有显示名称都是空的,即使我刚刚设置了它。
为什么会发生这种情况?

在搜索了一段时间后,我发现只有用于创建聊天室的SIP地址包含一个displayName时,您才会得到一个displayName

我的问题是,我在创建聊天室时没有设置displayName,而是在创建后得到的变量上设置它(而不是在聊天室本身上)

以下是如何做到这一点:

LinphoneAddress addr = LinphoneCoreFactory.instance().createLinphoneAddress(destination);
addr.setDisplayName(name);
LinphoneChatRoom room = core.getOrCreateChatRoom(addr.asString());