如何访问在android asmack库中具有私有访问修饰符的访问IQTypeFilter?

Posted

技术标签:

【中文标题】如何访问在android asmack库中具有私有访问修饰符的访问IQTypeFilter?【英文标题】:How to access access IQTypeFilter which has private access modifier in android asmack library? 【发布时间】:2016-12-26 17:02:14 【问题描述】:

我正在使用 asmack 开发聊天应用程序。我需要过滤传入的 IQ 。我正在使用下面的代码。

 PacketFilter filter = new IQTypeFilter(IQ.Type.SET); // or IQ.Type.GET etc. according to what you like to filter. 

connection.addPacketListener(new PacketListener()  
    public void processPacket(Packet packet) 
        // HERE YOU PUT YOUR CODE TO HANDLE THE IQ MESSAGE
    
, filter);  

此节目 IQTypeFilter 具有私人访问权限。所以我无法访问这里。如何解决这个问题?提前致谢

我的依赖 jar 是

编译'org.igniterealtime.smack:smack-android:4.1.4'

compile 'org.igniterealtime.smack:smack-tcp:4.1.4'
compile 'org.igniterealtime.smack:smack-im:4.1.4'
compile 'org.igniterealtime.smack:smack-extensions:4.1.4'

【问题讨论】:

您遇到了什么错误?贴出代码。 错误:(290, 68) 错误:不兼容的类型:StanzaFilter 无法转换为类型 发布完整代码和日志。因为,错误可能由于其他一些原因而上升。 【参考方案1】:

IQTypeFilter 的所有必需实例都可用作类的公共静态字段。例如:IQTypeFilter.GET_OR_SET

如果您需要更细粒度的过滤,您可能需要查看FlexibleStanzaTypeFilter

【讨论】:

以上是关于如何访问在android asmack库中具有私有访问修饰符的访问IQTypeFilter?的主要内容,如果未能解决你的问题,请参考以下文章

使用 asmack 共享位置

使用新访问令牌在 android 上使用 asmack 进行 Facebook 聊天

如何使用 GitHub REST API 通过我的个人访问令牌访问组织拥有的私有存储库中的文件数据?

使用 asmack 访问连接到 Ejabberd 的 MySQL

asmack vs tigase xmpp 库

在android中使用Asmack时出现404错误