Java 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) 完

我正在安卓XMPP客户端上工作,并试图从ejabberd服务器接收消息。Android Studio IDE在以下代码行显示错误“MessageTypeFilter(org.jivesoftware.smack.packet.Message.Type)在org.jivesoftware.smack.filter.MessageTypeFilter”中具有私有访问权限

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社区的流量:)