Articles of smack

XMPP aSmack – 如何获取当前用户状态(离线/在线/离开/等)?

我是android的新手xmpp / asmack。 谁能帮助我获得用户朋友的存在(名单) 我用这个: Presence availability = roster.getPresence(user); Mode userMode = availability.getMode(); 我还应该做些什么来获取我名单中列出的每个用户的可用性状态。

将Smack与Android Studio项目集成,用于聊天应用程序

我正在尝试使用ejabberd服务器和smack库实现聊天信使,但很难整合所有的jar和smack的依赖项。 我正在使用android Studio。 我的build.gradle(模块): apply plugin: ‘com.android.application’ android { compileSdkVersion 22 buildToolsVersion “22.0.1” defaultConfig { applicationId “com.example.nit.xmppclient” minSdkVersion 18 targetSdkVersion 22 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:22.2.0’ compile “org.igniterealtime.smack:smack-android:4.1.0” compile “org.igniterealtime.smack:smack-tcp:4.1.0” compile “org.igniterealtime.smack:smack-android-extensions:4.1.0” compile ‘org.ogce:xpp3:1.1.6’ […]

如何在Android上保持XMPP连接稳定(a)smack?

我使用Android的asmack–android-7-beem库。 我有一个后台服务正在运行,例如我的应用程序保持活动状态。 但是,XMPP连接迟早会在没有任何通知的情况下死亡。 服务器说客户端仍然在线,但没有发送或接收数据包。 例如,当其他客户端具有新的存在时,客户端不接收任何存在分组。 我有XMPPConnection作为我的主要Application类的一个属性。 我在建立ConnectionConfiguration config.setReconnectionAllowed(true)之前设置了ConnectionConfiguration config.setReconnectionAllowed(true) 。 但重新连接不会发生。 XMPPConnection connection.isConnected()返回true。 因此客户端不知道连接实际上已丢失。 有没有办法保持连接活着?

如何在Android中使用Smack 4.1?

我正在寻找这个答案使用您自己的XMPP服务器为Android聊天应用程序(Smack API)来了解可用的XMPP API。 Smack似乎是个不错的选择。 在Smack 4.1之前,人们必须依赖aSmack。 从4.1开始,Smack将在Android上本机运行。 我有几个“入门”问题。 问题1: 如何在Eclipse的Android项目中包含Smack 4.1? 这里的说明https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide似乎适用于Android Studio 问题2: Android的代码是否保持不变? 我在这里指的是他们的官方文档: https : //www.igniterealtime.org/builds/smack/docs/latest/documentation/index.html 我想知道的是API的使用是否也会在Android中保持不变。

远程客户端没有响应:使用asmack进行文件传输时出错

使用asmack接收文件时遇到问题。 在这里,我粘贴我发送和接收日志的错误和数据包 // error 04-21 19:21:05.109: WARN/System.err(7401): Error in execution: 04-21 19:21:05.109: WARN/System.err(7401): — caused by: java.util.concurrent.ExecutionException: 04-21 19:21:05.109: WARN/System.err(7401): — caused by: No response from remote client: 04-21 19:21:05.109: WARN/System.err(7401): at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.negotiateStream(IncomingFileTransfer.java:199) 04-21 19:21:05.109: WARN/System.err(7401): at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.access$100(IncomingFileTransfer.java:47) 04-21 19:21:05.109: WARN/System.err(7401): at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$1.run(IncomingFileTransfer.java:124) 04-21 19:21:05.109: WARN/System.err(7401): at java.lang.Thread.run(Thread.java:1019) 04-21 19:21:05.109: WARN/System.err(7401): Nested Exception: 04-21 19:21:05.109: […]

Android xmpp MUC设置默认configuration

我正在使用Xabber开源项目,并且能够创build一个新的组,但它总是说:这个房间被locking,直到configuration被确认。 我试图设置一个默认的configuration,但它引发了我的exception:401未经授权。 到底是什么问题。 final MultiUserChat multiUserChat; try { multiUserChat = new MultiUserChat(xmppConnection, room); // CHANAKYA: set default config for the MUC // Send an empty room configuration form which indicates that we want // an instant room try { multiUserChat.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); } catch (XMPPException e) { e.printStackTrace(); }

如何从XMPP XML消息中获取自定义属性值?

好吧,简单的问题,但对我来说很重要。 所以,其他的Android客户端都发送这个XML MSG: <message id='6ymdM-19' to='xox@xox.xox/smack' type='chat'> <subject>normal</subject> <received xmlns='urn:xmpp:receipts' id='HVgQw-5'/> </message> 我的听众大概是这样的: private class MsgListener implements ChatStateListener { /** * Constructor. */ public MsgListener() { } @Override public void processMessage(Chat chat, org.jivesoftware.smack.packet.Message message) { String xmlMessage = message.toXML(); Log.v(TAG, "XML Chat: "+xmlMessage); // getExtension namespace try urn:xmpp:receipts if(xmlMessage.contains("<request xmlns=")) { Log.d(TAG, "new chat message […]

Android – Smack的存在和“打字”function无法正常工作

我在Android应用程序中使用Smack库v4.1.0(不是aSmack)作为聊天function。 我似乎无法得到以下两个function工作: 用户存在(在线,上次查看) 聊天消息状态(发送,发送,阅读) 对于用户存在,我使用下面的代码总是返回null 。 Presence userPresence = roster.getPresence(toUser); System.out.println("*** User status: " + userPresence.getStatus()); if (userPresence.getMode() == Presence.Mode.available || userPresence.getMode() == Presence.Mode.chat) { lblIsTyping.setText("Online"); } else { lblIsTyping.setText("Offline"); } 对于消息状态,我使用以下代码: private class MessageListenerImpl implements MessageListener, ChatStateListener { @Override public void processMessage(Chat chat, Message message) { processMessageCore(message); } @Override public void stateChanged(Chat chat, ChatState […]

使用Android的Smack Api发送和接收消息

我试着从过去四天开始使用自己的XMPP和Smack + OpenFire发送和接收聊天消息。 根据Smack的“readme.txt”我build立了连接,并获得login用户。连接和login的代码是这个 public static String TAG = "Test connection"; private static XMPPTCPConnection connection; private static String userName = "demo"; private static String Password = "demo"; static { // Create the configuration for this new connection XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder(); configBuilder.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled); configBuilder.setResource(""); configBuilder.setUsernameAndPassword(userName, Password); configBuilder.setServiceName("192.168.2.10"); configBuilder.setHost("192.168.2.10"); configBuilder.setPort(5222); configBuilder.setCompressionEnabled(false); connection = new XMPPTCPConnection(configBuilder.build()); } 这样我configuration了connectionbuilder。 […]

如何使用Smack API使用AccountManager的身份validation令牌对Google Talk进行身份validation?

这个问题类似于: 使用authTokenvalidationGoogle Talk(XMPP,Smack) 我有android.accounts.AccountManager类及其方法来获取Google帐户的身份validation令牌: public AccountManagerFuture<Bundle> getAuthToken (Account account, String authTokenType, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler) 我知道如何准备authenticationXML: jidAndToken ="\0" + UTF8(YOURUSERNAME@gmail.com) + "\0" + Auth (其中“\ 0”打算是一个值为零的单个八位字节)。 在初始的SASLauthentication中使用这个: <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='X-GOOGLE-TOKEN'>Base64(jidAndToken)</auth> 但是我没有像Smack API那样整合它,就像有人在facebook这里聊天一样: XMPP与支持X-FACEBOOK-PLATFORM的Java Asmack库 有人能帮我吗?