Android Xmpp 黑名单
来源:互联网 发布:java类的访问权限 编辑:程序博客网 时间:2024/05/19 00:39
简介
该功能是基于Xmpp协议的ejabberd服务器黑名单的实现。黑名单的作用是把消息扼杀在服务器中。
由于功能强大,代码实现简单,这就不做任何介绍直接贴出代码了,懂Xmpp同学一看便知。
功能代码
功能分为:添加黑名单、删除黑名单、获取黑名单s,这些功能代码经测试通过(只是实现功能,而未优化代码),代码如下:
public boolean addToPrivacyList(String name) { // 添加到黑名单try {PrivacyListManager privacyManager = PrivacyListManager.getInstanceFor(XmppTool.getConnection());if (privacyManager == null) {return false;}PrivacyList[] plists = privacyManager.getPrivacyLists();if (plists.length == 0) {// 没有黑名单或是名单中没有列,直接getPrivacyList会出错List<PrivacyItem> items = new ArrayList<PrivacyItem>();Log.i("", "addToPrivacyList plists.length==0");PrivacyItem newitem = new PrivacyItem("jid", false, 100);newitem.setValue("BLACKNAME" + "@"+ XmppTool.getConnection().getServiceName());items.add(newitem);privacyManager.updatePrivacyList(Black_List, items);privacyManager.setActiveListName(Black_List);return true;}PrivacyList plist = privacyManager.getPrivacyList(Black_List);if (plist != null) {String ser = "@" + XmppTool.getConnection().getServiceName();List<PrivacyItem> items = plist.getItems();for (PrivacyItem item : items) {String from = item.getValue().substring(0,item.getValue().indexOf(ser));Log.i("","addToPrivacyList item.getValue=" + item.getValue());if (from.equalsIgnoreCase(name)) {items.remove(item);break;}}PrivacyItem newitem = new PrivacyItem("jid", false, 100);newitem.setValue(name + "@"+ XmppTool.getConnection().getServiceName());items.add(newitem);Log.i("", "addToPrivacyList item.getValue=" + newitem.toXML());Log.i("", "deleteFromPrivacyList items size=" + items.size());privacyManager.updatePrivacyList(Black_List, items);privacyManager.setActiveListName(Black_List);}return true;} catch (XMPPException ex) {// Logger.getLogger(XMPP.class.getName()).log(Level.SEVERE, null,// ex);}return false;}public boolean deleteFromPrivacyList(String name) {// 删除黑名单try {PrivacyListManager privacyManager = PrivacyListManager.getInstanceFor(XmppTool.getConnection());if (privacyManager == null) {return false;}PrivacyList plist = privacyManager.getPrivacyList(Black_List);if (plist != null) {String ser = "@" + XmppTool.getConnection().getServiceName();List<PrivacyItem> items = plist.getItems();for (PrivacyItem item : items) {String from = item.getValue().substring(0,item.getValue().indexOf(ser));Log.i("","deleteFromPrivacyList item.getValue="+ item.getValue());if (from.equalsIgnoreCase(name)) {Log.i("", "deleteFromPrivacyList find object");items.remove(item);break;}}Log.i("", "deleteFromPrivacyList items size=" + items.size());privacyManager.updatePrivacyList(Black_List, items);}} catch (XMPPException ex) {}return true;}public List<String> getPrivacyList() { // 获取所有黑名单List<String> privacyList = new ArrayList<String>();try {PrivacyListManager privacyManager = PrivacyListManager.getInstanceFor(XmppTool.getConnection());if (privacyManager == null) {return privacyList;}String ser = "@" + XmppTool.getConnection().getServiceName();PrivacyList plist = privacyManager.getPrivacyList(Black_List);if (plist == null) {// 没有黑名单或是名单中没有列,直接getPrivacyList会出错List<PrivacyItem> items = plist.getItems();for (PrivacyItem item : items) {String from = item.getValue().substring(0,item.getValue().indexOf(ser));privacyList.add(from);}} else {return privacyList;}} catch (XMPPException ex) {}return privacyList;}
结论
功能强大,代码简单。
http://asmack.freakempire.de 获取asmack 最新源码
5 0
- Android Xmpp 黑名单
- XMPP之置顶黑名单
- android 黑名单的拦截
- android-实现黑名单拦截
- Android黑名单来电管理
- android 黑名单 短信拦截
- 黑名单拦截短信【Android】
- 基于XMPP协议的Ejabberd服务器黑名单实现
- android XMPP
- android xmpp
- Android,xmpp
- android中黑名单的实现
- Android黑名单拦截部分代码
- android 黑名单中电话拦截
- 黑名单电话自动拦截【Android】
- android 小项目------黑名单app
- Android黑名单电话挂断(AIDL)
- Android设置黑名单电话挂断
- 第五届蓝桥杯——基础练习:字母图形
- SSH框架一步一步搭建
- ParseInt函数参数设置
- (android实战)实现【关于我们】功能(textview的文本样式几种实现方式)
- 进程与内存7-高速缓存2(目录项高速缓存、索引节点高速缓存和磁盘高速缓存)
- Android Xmpp 黑名单
- java正则表达式基本符号
- centos维护记录
- JavaScript中的apply()方法和call()方法使用
- ibatis 链接MSSQL2008 的一些问题总结
- Windows下使用第三方lua库
- 如何在android的开发中打开系统设置界面
- varnish 使用rpm文件安装
- js前台编码,asp.net后台解码 防止前台传值到后台为乱码