在 android 上使用 smack 面临问题
Posted
技术标签:
【中文标题】在 android 上使用 smack 面临问题【英文标题】:facing problem using smack on android 【发布时间】:2010-09-20 10:31:45 【问题描述】:我在 android 应用程序中有一个按钮。单击按钮时,将调用以下代码:
TestSmack a = new TestSmack();
a.login("abc@gmai.com","password");
我有一个TestSmack类.....在我写的这个类的构造函数中
public TestSmack ()
ConnectionConfiguration connConfig = new
ConnectionConfiguration("talk.google.com", 5222, "gmail.com");
connection = new XMPPConnection(connConfig);
其中 XMPPConnection 连接是一个全局变量。在登录方法中我尝试连接到服务器:
public void login(String userName, String password) throws XMPPException
SASLAuthentication.supportSASLMechanism("PLAIN", 0);
connection.connect();
connection.login(userName, password);
但它崩溃了。我不知道发生了什么。
而当我从 main()
调用这些所有方法并在单独的项目(Java,而不是 Android)中运行一个简单的 Java 应用程序时,它工作正常。
我无法弄清楚问题所在。
谢谢
【问题讨论】:
【参考方案1】:您使用的是标准的 Smack 库吗?几个月前,当我在玩 XMPP 时,您必须对库进行修补才能使其在 Android 上运行。也许这会有所帮助:
http://davanum.wordpress.com/2008/12/29/updated-xmpp-client-for-android/
【讨论】:
谢谢您的回复。实际上,当通过 android 访问 XMPP 服务器时,我们需要在 android.manifest 文件中添加以下行:如果有人无法在 android 上运行程序,请检查 connect() 和 login() SMACK API 是否工作正常。因为我发现你需要添加
uses-permission android:name="android.permission.INTERNET"(将其括在 单独的大括号内)
在 AndroidManifest 文件中让 connect() 和 login() 工作。别忘了使用修补过的 Smack.jar。
【讨论】:
以上是关于在 android 上使用 smack 面临问题的主要内容,如果未能解决你的问题,请参考以下文章
我如何在 smack openfire android 中监听传入的订阅请求
Openfire:在android上使用smack向特定人广播消息
在 android 上使用 smack 4.1.0 的 openfire 问题
在 Android Studio 上使用 Smack 构建 XML 流消息