asmack 搜索好友报空指针解决方案
来源:互联网 发布:淘宝权重的因素 编辑:程序博客网 时间:2024/06/05 17:44
第一种
在 connection.connect(); 建立连接之前
调用这个方法
SmackAndroid.init(this);
第二种
public static void configure(ProviderManager pm) { // Private Data Storagepm.addIQProvider("query", "jabber:iq:private", new PrivateDataManager.PrivateDataIQProvider()); // Timetry {pm.addIQProvider("query", "jabber:iq:time", Class.forName("org.jivesoftware.smackx.packet.Time"));} catch (ClassNotFoundException e) {Log.w("TestClient", "Can't load class for org.jivesoftware.smackx.packet.Time");} // Roster Exchangepm.addExtensionProvider("x", "jabber:x:roster", new RosterExchangeProvider()); // Message Eventspm.addExtensionProvider("x", "jabber:x:event", new MessageEventProvider()); // Chat Statepm.addExtensionProvider("active", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());pm.addExtensionProvider("composing", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());pm.addExtensionProvider("paused", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());pm.addExtensionProvider("inactive", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider());pm.addExtensionProvider("gone", "http://jabber.org/protocol/chatstates", new ChatStateExtension.Provider()); // XHTMLpm.addExtensionProvider("html", "http://jabber.org/protocol/xhtml-im", new XHTMLExtensionProvider()); // Group Chat Invitationspm.addExtensionProvider("x", "jabber:x:conference", new GroupChatInvitation.Provider()); // Service Discovery # Itemspm.addIQProvider("query", "http://jabber.org/protocol/disco#items", new DiscoverItemsProvider()); // Service Discovery # Infopm.addIQProvider("query", "http://jabber.org/protocol/disco#info", new DiscoverInfoProvider()); // Data Formspm.addExtensionProvider("x", "jabber:x:data", new DataFormProvider()); // MUC Userpm.addExtensionProvider("x", "http://jabber.org/protocol/muc#user", new MUCUserProvider()); // MUC Adminpm.addIQProvider("query", "http://jabber.org/protocol/muc#admin", new MUCAdminProvider()); // MUC Ownerpm.addIQProvider("query", "http://jabber.org/protocol/muc#owner", new MUCOwnerProvider()); // Delayed Deliverypm.addExtensionProvider("x", "jabber:x:delay", new DelayInformationProvider()); // Versiontry {pm.addIQProvider("query", "jabber:iq:version", Class.forName("org.jivesoftware.smackx.packet.Version"));} catch (ClassNotFoundException e) {// Not sure what's happening here.} // VCardpm.addIQProvider("vCard", "vcard-temp", new VCardProvider()); // Offline Message Requestspm.addIQProvider("offline", "http://jabber.org/protocol/offline", new OfflineMessageRequest.Provider()); // Offline Message Indicatorpm.addExtensionProvider("offline", "http://jabber.org/protocol/offline", new OfflineMessageInfo.Provider()); // Last Activitypm.addIQProvider("query", "jabber:iq:last", new LastActivity.Provider()); // User Searchpm.addIQProvider("query", "jabber:iq:search", new UserSearch.Provider()); // SharedGroupsInfopm.addIQProvider("sharedgroup", "http://www.jivesoftware.org/protocol/sharedgroup", new SharedGroupsInfo.Provider()); // JEP-33: Extended Stanza Addressingpm.addExtensionProvider("addresses", "http://jabber.org/protocol/address", new MultipleAddressesProvider()); // FileTransferpm.addIQProvider("si", "http://jabber.org/protocol/si", new StreamInitiationProvider()); pm.addIQProvider("query", "http://jabber.org/protocol/bytestreams", new BytestreamsProvider()); // Privacypm.addIQProvider("query", "jabber:iq:privacy", new PrivacyProvider());pm.addIQProvider("command", "http://jabber.org/protocol/commands", new AdHocCommandDataProvider());pm.addExtensionProvider("malformed-action", "http://jabber.org/protocol/commands", new AdHocCommandDataProvider.MalformedActionError());pm.addExtensionProvider("bad-locale", "http://jabber.org/protocol/commands", new AdHocCommandDataProvider.BadLocaleError());pm.addExtensionProvider("bad-payload", "http://jabber.org/protocol/commands", new AdHocCommandDataProvider.BadPayloadError());pm.addExtensionProvider("bad-sessionid", "http://jabber.org/protocol/commands", new AdHocCommandDataProvider.BadSessionIDError());pm.addExtensionProvider("session-expired", "http://jabber.org/protocol/commands", new AdHocCommandDataProvider.SessionExpiredError());}
在connection.connect(); 建立连接之前
调用
configure(ProviderManager.getInstance());
/** * 查询用户 * * @param connection * @param serverDomain * @param userName * @return * @throws XMPPException */public static List<UserBean> searchUsers(XMPPConnection connection,String userName) throws XMPPException { List<UserBean> results = new ArrayList<UserBean>(); System.out.println("查询开始..............."+connection.getHost()+connection.getServiceName()); UserSearchManager usm = new UserSearchManager(connection); Form searchForm = usm.getSearchForm("search."+connection.getServiceName()); Form answerForm = searchForm.createAnswerForm(); answerForm.setAnswer("Username", true); answerForm.setAnswer("search", userName); ReportedData data = usm.getSearchResults(answerForm, "search."+connection.getServiceName()); Iterator<Row> it = data.getRows(); Row row = null; UserBean user = null; while(it.hasNext()) { user = new UserBean(); row = it.next(); user.setUsername(row.getValues("Username").next().toString()); user.setName(row.getValues("Name").next().toString()); user.setEmail(row.getValues("Email").next().toString()); System.out.println(row.getValues("Username").next()); System.out.println(row.getValues("Name").next()); System.out.println(row.getValues("Email").next()); results.add(user); //若存在,则有返回,UserName一定非空,其他两个若是有设,一定非空 } Toast.makeText(context, results.size()+"",1000).show(); return results; }
0 0
- asmack 搜索好友报空指针解决方案
- asmack 搜索好友信息
- asmack实现获取好友列表 添加好友 搜索好友
- 使用@Autowired 报空指针解决方案
- 报空指针
- tomcat报空指针
- RecyclerView 报空指针
- Onmeasure报空指针
- ViewHolder报空指针????
- jsp报空指针
- mediaController 报空指针异常 VideoView 关闭报空指针
- ssh 总是报空指针
- spring+dwr 报空指针
- setOnClickListener报空指针异常
- getActionBar()报空指针异常
- popuwindow报空指针异常
- java 空指针报错
- setOnClickListener报空指针异常
- 位图管理、图片下载缓存、管理图片内存 (四) 缓存位图
- 福布斯全球最具价值品牌榜
- redis 五种数据类型的使用场景
- H3C-S3100交换机Console口登录方式配置
- 未来两周目标计划---C++ and Disassembly(不积跬步无以至千里,不积小流无以成江海)
- asmack 搜索好友报空指针解决方案
- 政府信息化建设重点——服务、多元化
- Yar – 并行的RPC框架(Concurrent RPC framework)
- 被坑了,js语法跟Java面向对象语法还是有区别的
- c#窗体关闭时可查看关闭的原因
- 小黑小波比.sql某字段累加1或者减1
- 几张趣图让你快速了解云计算起源及发展
- 【从零学习openCV】使用直方图统计像素
- JQuery Validate学习笔记