Java MessageTypeFilter(org.jivesoftware.smack.packet.Message.Type)在org.jivesoftware.smack.filter.MessageTypeFilter中具有私有访问权限
我正在安卓XMPP客户端上工作,并试图从ejabberd服务器接收消息。Android Studio IDE在以下代码行显示错误“MessageTypeFilter(org.jivesoftware.smack.packet.Message.Type)在org.jivesoftware.smack.filter.MessageTypeFilter”中具有私有访问权限Java MessageTypeFilter(org.jivesoftware.smack.packet.Message.Type)在org.jivesoftware.smack.filter.MessageTypeFilter中具有私有访问权限,java,android,xmpp,smack,Java,Android,Xmpp,Smack,我正在安卓XMPP客户端上工作,并试图从ejabberd服务器接收消息。Android Studio IDE在以下代码行显示错误“MessageTypeFilter(org.jivesoftware.smack.packet.Message.Type)在org.jivesoftware.smack.filter.MessageTypeFilter”中具有私有访问权限 PacketFilter filter = new MessageTypeFilter(Message.Type.chat) 完
PacketFilter filter = new MessageTypeFilter(Message.Type.chat)
完整的代码是
XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
configBuilder.setUsernameAndPassword("X@X.com", "XXX");
//configBuilder.setResource("test");
configBuilder.setPort(5222);
configBuilder.setCustomSSLContext(context);
configBuilder.setDebuggerEnabled(true);
//configBuilder.setSocketFactory(SSLSocketFactory.getDefault());
configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
configBuilder.setHost("X.X.X.X");
configBuilder.setServiceName("X.com");
SASLMechanism mechanism = new SASLPlainMechanism();
SASLAuthentication.registerSASLMechanism(mechanism);
SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1");
SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");
SASLAuthentication.unBlacklistSASLMechanism("PLAIN");
final XMPPTCPConnection connection =
new XMPPTCPConnection(configBuilder.build());
try {
connection.connect();
Log.i("App1-conn","CONENCTION WORKS");
connection.login();
}
final XMPPTCPConnection finalCon = connection;
Button sendMEssage = (Button)findViewById(R.id.button_sendMEssage);
sendMEssage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText msgtxt = (EditText) findViewById(R.id.editText_message);
Message message = new Message("Y@X.com");
message.addBody("App1 Eng", msgtxt.getText().toString());
try {
finalCon.sendPacket(message);
} catch (SmackException.NotConnectedException e) {
Log.i("App1 Send ", "Packet Sending Failed");
e.printStackTrace();
}
Log.i("App1 Message Sent", "MEssage Sent");
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
connection.addAsyncPacketListener(new PacketListener() {
@Override
public void processPacket(Stanza packet) throws SmackException.NotConnectedException {
}
} , filter);
梯度锉
compile "org.igniterealtime.smack:smack-android:4.1.0-rc1"
// Optional for XMPPTCPConnection
compile "org.igniterealtime.smack:smack-tcp:4.1.0-rc1"
// Optional for XMPP-IM (RFC 6121) support (Roster, Threaded Chats, …)
compile "org.igniterealtime.smack:smack-im:4.1.0-rc1"
// Optional for XMPP extensions support
compile "org.igniterealtime.smack:smack-extensions:4.1.0-rc1"
compile "org.igniterealtime.smack:smack-sasl-provided:4.1.0-rc1"
注意:服务器连接、登录、消息发送工作正常。使用使用MessageTypeFilter.CHAT而不是PacketFilter=newmessagetypefilter(Message.Type.CHAT) 使用 信用:@来自smack社区的流量:)