Smack < 4.1在Android上不起作用,主要是因为Android缺少API(例如大多数javax API)。这就是aSmack构建环境的诞生原因,可以修改Smack以便在Android上使用。
除了许多较小的更改外,最大的变化有:
确保在执行任何XMPP相关操作之前,阅读README并初始化相关代码。
更多信息可在https://github.com/Flowdalic/asmack/wiki/Modifications找到。
你可以查看 talkmyphone 的实现方式。我认为他们在Android上使用了Smack。
它修改了Smack以使其能够在Android上运行。
我不确定这些更改是什么,除了修改ProviderManager机制以便从适用于Android的目录中加载smack.providers XML文件。默认情况下,Smack会从自己的资源目录加载此文件,但在Android中无法访问。