我正在开发基于Android的XMPP的聊天应用程序.
我已经完成了一对一的聊天功能,但在多用户聊天中遇到了一些问题.我已经成功创建了新的聊天室,多个用户可以加入该会议室.我也addPacketListener为团体聊天编写了代码PacketFilter filter = new MessageTypeFilter(Message.Type.groupchat);
当用户在组中发送消息时,我也在该侦听器中接收消息,但我无法区分哪个用户已发送消息.
像一对一的聊天消息包具有message.getFrom()检索发件人JID的功能.
在多用户聊天的情况下,相同的功能将组/房间JID作为发送者返回.
我还试图在发送设置消息的属性message.setFrom(senderJID);或message.setFrom(sendername@conference.hostname/Groupname);
仍然我无法获得senderJID或其昵称.
所以我的问题是:如何获取发件人用户JID或其昵称?来自messageListener中的消息(数据包)
在组中发送消息的代码是: -
String to = strGroupJID;
String text = etChatOnTextBox.getText().toString();
if(!text.equals(""))
{
Message msg = new Message(to, Message.Type.groupchat);
msg.setBody(text);
String name1 = xmppConnection.getUser();
name1 = name1.substring(0, name1.lastIndexOf("@"));
name1 = name1 + "@conference.192.168.56.1";
// name1 = name1 + "@conference.192.168.56.1/" + strGroupName ;
msg.setFrom(name1);
muc.sendMessage(msg);
}
Run Code Online (Sandbox Code Playgroud)
接收消息的代码是: -
PacketFilter filter = new MessageTypeFilter(Message.Type.groupchat);
connection.addPacketListener(new PacketListener() {
@Override
public void processPacket(Packet packet) { …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个Android应用程序.刚开始,我能够实现我的启动画面.但是,我不喜欢它和主要活动之间的过渡.我希望启动画面淡出并主要淡入.看起来它们混合在一起,因为我有两个相同的背景图像.做了一些研究,但还没有找到正确的答案.下面,我发布了我的代码.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
public class Splash_screen extends Activity {
private Thread mSplashThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_layout);
final Splash_screen sPlashScreen = this;
mSplashThread = new Thread(){
@Override
public void run(){
try {
synchronized(this){
wait(3000);
}
}
catch(InterruptedException ex){
}
finish();
Intent intent = new Intent();
intent.setClass(sPlashScreen, MainActivity.class);
startActivity(intent);
}
};
mSplashThread.start();
}
@Override
public boolean onTouchEvent(MotionEvent evt)
{
if(evt.getAction() == MotionEvent.ACTION_DOWN)
{
synchronized(mSplashThread){
mSplashThread.notifyAll();
}
}
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
MainActivity类 …
android splash-screen fadein android-animation android-studio