我一直在尝试为iOS和Android制作一个简单的即时消息应用程序。在iOS上完成所有工作。我虽然在Android上遇到过一件事。
每当我发送消息时,它都会发送包含两个对象sender
和other
的消息。发件人是邮件的发件人,另一个是收到邮件的人。
在iOS上,它为sender
提供当前登录用户的用户名。与other
相同,但它为接收邮件的人员提供了用户名。在Android上,目前,我只能获取当前登录用户的sender
用户名称,并且other
设置为用户 id < / em>接收消息的人。我想让Android将other
设置为用户名。
我是Java和Android应用程序开发的新手。我对Swift和iOS开发了解得更多。不过,我很确定这样做需要查询。
有人能指点我怎么做吗?非常感谢!
代码: Pastebin #1 Pastebin #2 StackOverflow不会让我放入另一个链接。如果有人想看,我可以将其粘贴回复。
P.S。对不起,如果这没有多大意义。我真的不知道如何描述它。
答案 0 :(得分:0)
也许不是最清楚但是如果你看一下ios教程,你用用户名启动sinch客户端,而不是解析用户id
[initSinchClient:self.usernameField.text];
但是在android应用程序中,您可以使用parse userid
启动它currentUserId = ParseUser.getCurrentUser().getObjectId();
currentUserName = ParseUser.getCurrentUser().getUsername();
if (currentUserId != null && !isSinchClientStarted()) {
startSinchClient(currentUserId); //change this
}
尝试将此更改为 startSinchClient(CURRENTUSERNAME);
答案 1 :(得分:0)
如果要从userId获取接收者的userName,则应该进行解析查询:
尝试以下方法:
String receiverName = null;
List<ParseUser> users = null;
try {
ParseQuery<ParseUser> userQuery = ParseUser.getQuery();
userQuery.whereEqualTo("objectId", other);
users = userQuery.find();
} catch (ParseException e) {
e.printStackTrace();
}
if( users != null && users.size() >= 1)
{receiverName = users.get(0).getUsername();}