黑名单相关的方法在IYWContactService中,通过imCore.getContactService()获取
IYWContactService contactService = imCore.getContactService();
在使用黑名单功能之前,需要先调用
contactService.enableBlackList()
开启黑名单。此方法需要放在ApplicationOnCreate中调用,这样可以保证SDK在登录成功后自动触发获取黑名单列表。
/** * 获取黑名单列表 * @param count 最大黑名单获取数 * @param result,返回结果 * @param isForce 是否强制同步,建议使用true * @return */ abstract public void syncBlackContacts(int count, IWxCallback result,boolean isForce);
示例
contactService.syncBlackContacts(20, new IWxCallback() { @Override public void onSuccess(Object... obj) { List<IYWContact> blackList = (List<IYWContact>) obj[0]; } @Override public void onError(int code, String info) { } @Override public void onProgress(int progress) { } }, true);
/** * 添加到黑名单 * @param userId,用户ID号 * @param appKey appkey * @param result 返回结果 */ abstract public void addBlackContact(String userId, String appKey, IWxCallback result);
示例
contactService.addBlackContact(contact.getUserId(), contact.getAppKey(), new IWxCallback() { @Override public void onSuccess(Object... result) { IYWContact iywContact = (IYWContact)result[0]; } @Override public void onError(int code, String info) { } @Override public void onProgress(int progress) { } });
/** * 移出黑名单 * @param userId 要移出黑名单的用户 * @param appKey * @param result */ abstract public void removeBlackContact(String userId, String appKey, IWxCallback result);
示例
manager.removeBlackContact(contact.getUserId(), contact.getAppKey(), new IWxCallback() { @Override public void onSuccess(Object... result) { IYWContact iywContact = (IYWContact)result[0]; } @Override public void onError(int code, String info) { } @Override public void onProgress(int progress) { } });
/** * 该用户是否在黑名单中 * @param userId * @param appKey * @return true: 在黑名单中,false:不在黑名单 */ abstract public boolean isBlackContact(String userId, String appKey);
此方法为本地判断,调用此方法前需要正确调用了获取黑名单列表方法
黑名单功能的几个方法的具体使用,可以参考demo工程的ContactsFragment.java文件