- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 smack-android:4.1.0 进行聊天,我正在使用 openfire。当我尝试在 android 中使用 AccountManager 创建帐户时,我遇到 jid-malformed 我已经尝试了所有方法,但无法找到解决方案,我正在使用我的代码来创建用户。
if(connection != null && connection.isConnected()){
Log.e("=AccountManager= ","AccountManager");
// Registering the user
AccountManager accountManager = AccountManager.getInstance(connection);
//Log.e("=supportsAccountCreation= ","="+accountManager.supportsAccountCreation());
//Log.e("=getAccountInstructions= ","="+accountManager.getAccountInstructions());
Map<String, String> attributes = new HashMap<>();
attributes.put("email", "kanta@signitysolutions.in");
attributes.put("username", "spota421");
if (accountManager!=null&&accountManager.supportsAccountCreation()) {
accountManager.sensitiveOperationOverInsecureConnection(true);
accountManager.createAccount("spota421", "xxxxx", attributes);
}
}
下面是我在控制台中得到的响应,请任何人指导我,我做错了什么。
D/SMACK: SENT (0): <iq to='52.62.104.135:9090' id='4Clc6-3' type='get'><query xmlns='jabber:iq:register'></query></iq>
10-02 07:40:21.670 7216-7330/
D/SMACK: RECV (0): <iq type="error" id="4Clc6-3" to="ip-172-31-28-121.ap-southeast-2.compute.internal/8xk12y6kvq" from="52.62.104.135:9090"><query xmlns="jabber:iq:register"/><error code="400" type="modify"><jid-malformed xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: jid-malformed - modify
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:213)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at org.jivesoftware.smackx.iqregister.AccountManager.getRegistrationInfo(AccountManager.java:332)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at org.jivesoftware.smackx.iqregister.AccountManager.supportsAccountCreation(AccountManager.java:144)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at com.signity.spota.xmpp.CreateConnection.Authenticate(CreateConnection.java:182)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at com.signity.spota.xmpp.CreateConnection.access$200(CreateConnection.java:34)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at com.signity.spota.xmpp.CreateConnection$connect.onPostExecute(CreateConnection.java:121)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at com.signity.spota.xmpp.CreateConnection$connect.onPostExecute(CreateConnection.java:55)
10-02 07:40:21.675 7216-7216/com.signity.spota W/System.err: at android.os.AsyncTask.finish(AsyncTask.java:636)
最佳答案
试试这个,希望它能起作用。
if (XMPPConnection != null && XMPPConnection.isConnected()) {
Log.e("=AccountManager= ", "AccountManager");
AccountManager accountManager = AccountManager.getInstance(XMPPConnection);
Map<String, String> attributes = new HashMap<>();
try {
if (accountManager != null && accountManager.supportsAccountCreation()) {
accountManager.sensitiveOperationOverInsecureConnection(true);
Jid jid = JidCreate.entityBareFrom("spot123" + "@" + "yourOpenFireService As String");
accountManager.createAccount(jid.getLocalpartOrNull(), "Spot1234sdfsd", attributes);
}
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (XmppStringprepException e) {
e.printStackTrace();
}
}
关于java - Android - XMPPError : jid-malformed - modify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46524916/
经过数小时的调试并试图找出为什么使用 aSmack 无法进行文件传输,而正常的消息传递却可以,我终于设法将其归结为这一点。 当我按照 Smack 文档中给出的方法获取用户的名册列表时,Openfire
我的聊天机器人有大约 100 个客户的电子邮件 ID。我可以制作一个 JID 数组或某种东西来存储许多电子邮件吗?谢谢。 最佳答案 您可以将它们存储在 App Engine Datastore 中;您
同一个用户登录了三个设备(用户名“A”),如果消息发送到这个用户(用户名“A”)来自另一个用户(用户名:“B”)只有一个设备正在接收其他两个设备未接收到的消息。 请给我一个解决方案。 最佳答案 用户A
在xmpp中,以下2个用户可以加入多用户聊天(MUC)或订阅同一个pub-sub节点吗? public@service.com/user1public@service.com/user2 最佳答案 加
在xmpp中,以下2个用户可以加入多用户聊天(MUC)或订阅同一个pub-sub节点吗? public@service.com/user1public@service.com/user2 最佳答案 加
我使用 xmpp4r gem 创建简单的 jabber 机器人。你怎么知道房间里的 jid 用户?我如何知道 jid 发布了一条消息? 示例代码: @room.join Jabber::JID.n
我正在 Android 中开发基于 XMPP 的聊天应用程序。 我已经完成了一对一聊天功能,但在多用户聊天中遇到了一些问题。我已经成功创建了新的聊天室,多个用户可以加入该房间。我还为 addPacke
我正在开发一个 XMPP 应用程序并将进行全局共享花名册,这样我就不必进行状态订阅请求。我还需要获得一定范围内的 JabberID,而不是整个全局花名册。我们不想做单一的定向存在节,因为那将需要多达
在 Openfire 中,用户是使用“用户名”(用作 JID 的基础)和描述性“名称”创建的。如何在 XMPP 中检索给定 JID 的名称?我正在使用 XMPPFramework。 最佳答案 您可以使
您好,我是新手:我已经设置了一个 Openfire 服务器并使用 Spark IM 对其进行了测试。但是对于 Android 应用程序代码, session 中用户的 JID 应该是什么: 我试过 u
我正在使用 http://xmppjs.prosody.im/ 编码一个 xmpp 组件.我想向 jid 发送消息,但前提是用户在线。实现这一目标的最快/最有效的方法是什么。 我想检测到这一点,例如,
我刚刚下载了适用于 IOS 的 XMPP 框架,当我运行示例应用程序时,它会要求输入 JID 和 密码,它有一个示例代码 谁能告诉我如何在IOS中实现实时聊天。那么如何获得JID呢? 谢谢 最佳答案
我是 xmppframework 的新手。我有一个快速的问题。是否有可能知道某个 JID 是否可用。换句话说,是否可以检查用户名是否已与特定帐户关联或注册。 最佳答案 使用 jabber 搜索是的,您
我正在使用 smack-android:4.1.0 进行聊天,我正在使用 openfire。当我尝试在 android 中使用 AccountManager 创建帐户时,我遇到 jid-malform
验证 xmpp jid 的正确方法是什么?语法描述为 here: ,但我真的不明白。此外,它看起来相当复杂,因此使用库来完成它似乎是个好主意。 我目前正在使用 xmpppy,但我似乎无法找到如何使用它
当我试图将 worker 返回的 jid 推送到模型上的序列化字段时,我遇到了一些奇怪的行为。最好用这段代码解释: class Foo Foo.new.jids.class => Array > B
在我的聊天应用程序中,我想实现一个功能,只要用户已经登录,并且如果他/她想使用相同的用户名和密码再次登录其他设备,它应该将用户回复一条消息 - “你是已经在其他地方登录” 我只知道这种检查登录状态的方
我正在尝试使用 camel-xmpp-component 从 A@jabber.de 向用户 B@jabber.de 发送一条(私有(private))直接消息。但它总是说“jid-malformed
当我在应用程序中收到 XMPP Presence 时,我将其内容添加到 NSMutableDictionary 以将其发送到另一个 ViewController。如果我使用 NSLog 来查看这本字典
是否有任何选项可以使用 XMPP 框架 iOS 更改我的 jId (ejabberd ID)?假设目前我的 jID 是 12345@localhost。我想将其更改为 6789@localhost。就
我是一名优秀的程序员,十分优秀!