我可以使用此代码将条目添加到Xmpp帐户.我无法订阅“两者”,而不是我没有得到.

roster.createEntry(“abc@xyz.com”,“abc”,null);

当我订阅此帐户的条目时,如何添加在场类型=两者的条目.我想知道xmpp是否发布 – 订阅功能?

>如何获取入站在线通知?
>如何发送出站在线通知?

编辑:

public void Addcontact() {    
    Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
    Roster roster = m_connection.getRoster();

    if(!roster.contains("pa@ace.com")) {        try {           
            roster.createEntry("pa@ace.com","pa",null);               
        } catch (XMPPException e) {          
            e.printstacktrace();
        }
    }else {
        Log.i("Acc = ","contains");
    }
}

我正在添加这样的条目我仍然得到Presence Type = none ..

解决方法

这是我如何在我的应用程序中添加另一个朋友.
protected void doAddContactToListAsync(String address,String name,ContactList list) throws ImException {
            debug(TAG,"add contact to " + list.getName());
            Presence response = new Presence.Type.subscribed);
            response.setTo(address);

            sendPacket(response);

            Roster roster = mConnection.getRoster();
            String[] groups = new String[] { list.getName() };
            if (name == null) {
                name = parseAddressName(address);
            }
            try {
                // final String name = parseAddressName(address);
                // Log.v(tag,msg)

                roster.createEntry(address,name,groups);

                // If contact exists locally,don't create another copy
                Contact contact = makeContact(name,address);
                if (!containsContact(contact))
                    notifyContactListUpdated(list,ContactListListener.LIST_CONTACT_ADDED,contact);
                else
                    debug(TAG,"skip adding existing contact locally " + name);
            } catch (XMPPException e) {
                throw new RuntimeException(e);
            }
        }

只需使用必要部分

Presence response = new Presence.Type.subscribed);
response.setTo(address);
sendPacket(response);

Roster roster = mConnection.getRoster();
roster.createEntry(address,groups);

要侦听传入的请求,请将addPacketListener注册到您的连接

mConnection.addPacketListener(new PacketListener() {

            @Override
            public void processpacket(Packet packet) {

                Presence presence = (Presence) packet;
                    if (presence.getType() == Type.subscribe) {
                    debug(TAG,"sub request from 1" + address);
//Implement accept or reject depend on user action. 
            mContactListManager.getSubscriptionRequestListener()
                            .onSubScriptionRequest(contact);
//or you can test with send back Presence.subscribe first and send Presence.subscribed back to requester.


                } else {// Handle other Presence type.
                    int type = parsePresence(presence);
                    debug(TAG,"sub request from " + type);
                    contact.setPresence(new Presence(type,presence.getStatus(),null,Presence.CLIENT_TYPE_DEFAULT));

                }
            }
        },new PacketTypeFilter(Presence.class));

        mConnection.connect();

正确的顺序:

> User1发送订阅给user2.
> User2将Subscribe and Subsribed发送回user1.
> User1发送Subribed到user2.

你可以检查另一个SO question

android – 如何添加和订阅jabber条目到我的XMPP帐户?的更多相关文章

  1. ios – XMPP应用终止而不是回复消息

    我在XMPP应用程序中工作.当我终止并杀死我的应用程序时,1)XMPP服务器中未连接用户.用户离线.但我希望用户连接和在线.喜欢WhatsApp(应用).2)我当时无法从XMPP服务器端获取任何消息,这种方法不是调用.那么,我如何获得消息?

  2. XMPP iOS框架检测与OpenFire服务器的互联网断开连接问题

    我已经使用XMPPiOS框架与OpenFire服务器实现聊天应用程序.幸运的是,应用程序正在运行,但我在应用程序中面临一个互联网断开的问题.当用户正在注销或手动进入离线模式时,它会将节发给他/她的名单.所以他/她的名单知道用户进入离线模式.现在当互联网从用户设备断开连接时,由于互联网断开,应用程序无法向服务器发送存在节.所以他/她的名单将不会获得关于该离线用户的信息,用户将只显示在线模式.我认为像

  3. 在android中创建聊天应用程序的最佳做法是什么

    我打算创建一个Android聊天应用程序.实际上聊天将成为应用程序的一项功能.我想知道有关Android聊天应用程序的最佳实践.我熟悉的两个选项是C2MD,每隔几秒就会对服务器db进行一次自定义轮询.现在,我知道C2MD本来应该是伟大的,但根据我的理解,它并不可靠.我试图实现它,它似乎没有工作.此外,如果由于某种原因谷歌结束时发生了某些事情(就像他们的服务器已关闭–不太可能但可能发生)我无法联系他

  4. Smack(XMPP)聊天应用程序的Android后台服务

    我正在使用asmack库实现一个聊天应用程序.我想启动一个始终运行的服务,其中所有的连接管理任务都要完成,并且应该继续接收传入的数据包并将消息保存在我的sqlite数据库中.当我的应用程序启动时,我希望我的应用程序也会收到通知,而后台服务将消息插入sqlite数据库.如何用粘性服务实现这种结构.是否还需要部分唤醒锁定.因为,有时也会根据特定需求使用http来下载图像.解决方法您可以在服务器上注册后

  5. android – 如何使用Smack了解XMPP openfire中的键入状态

    我正在使用OpenfireXMPP服务器开发聊天应用程序.我可以在两个用户之间进行文字聊天但我想知道某人输入消息时的打字状态.所以我创建了一个类:–但我很困惑,所以它将如何运作?我知道我需要一个数据包,我可以在Listener中使用它.但我无法找到该数据包.请任何人建议,它将如何运作?还有Smack和asmack有什么区别?解决方法要启用ChatStateListener,您需要创建自定义MessageListener类然后创建MessageListener对象然后在createchat方法中传递它Sma

  6. android – 如何添加和订阅jabber条目到我的XMPP帐户?

    >如何获取入站在线通知?>如何发送出站在线通知?

  7. 使用Smack for Android实现FCM与XMPP

    我正在使用XMPP在我的Android应用程序中实现聊天,我已经使用了SmackAPI.我的聊天工作正常,我在本地保存Android设备上的所有聊天消息.以下是我目前面临的一些问题.>在聊天期间,如果某种方式连接丢失,那么它需要很长时间再次重新连接,有时它甚至没有连接.即使之后连接已连接,停止发送聊天消息,因为它不再在另一边接收.我有再次初始化资源但有时会有效>如果我的USER断开连接,我想使用F

  8. 如何使用PHP和JQuery开发基于Web的XMPP聊天工具?

    )处理,并且如弃用文章所述,有几个很好的将SSE带到旧版浏览器.

  9. Ajax jabber/XMPP客户推荐(只有真实体验)!

    我正在为我的利基社区网站建立一个聊天系统,并决定在服务器端使用ejabberd,但是我找不到任何体面的基于web的ajax客户端。我在这里看过一个人:http://xmpp.org/xmpp-software/clients/有人正在运行一个活动网站,并使用一个基于ajax的客户端,他们可以保证这个工作正在积极发展?我不确定它的维护状态,但我通常指出谁要求我这个问题的人到TrophyIM.它是一个小的,可主题的聊天客户端写在Strophe.js年以上。大多数人在Web域中都有非常明确的需求,我认为这有助于

  10. php – jaxl无法连接到Prosody

    在此先感谢您的帮助.正如日志所述,Prosody未通过身份验证.请尝试使用PLAIN,DIGEST-MD5,ANONYMOUS身份验证机制之一,它应该工作正常.SCRAM-SHA-1和CRAM-MD5目前在JAXLv3.x中都已中断.如果它仍然不起作用,请告诉我.

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部