集成了CallKit,但是想隐藏RongExtension中语音聊天和视频聊天Plugin按钮

开通音视频服务后安卓端IMKIT能否隐藏音视频通话按钮? 实现只允许web端主动发起与Android端的视频请求,屏蔽Android端之间互相开视频。
发布时间: 2018-01-02 10:23

回答:

  1. 自定义一个 ExtensionModule 继承自 DefaultExtensionModule,复写其中的 getPluginModules() 方法

public class MyExtensionModule extends DefaultExtensionModule {

    @Override
    public List<IPluginModule> getPluginModules(Conversation.ConversationType conversationType) {
        List<IPluginModule> pluginModules =  super.getPluginModules(conversationType);
        Iterator<IPluginModule> iterator = pluginModules.iterator();
        while (iterator.hasNext()) {
            IPluginModule plugin = iterator.next();
            if (plugin instanceof AudioPlugin || plugin instanceof VideoPlugin) {
                iterator.remove();
            }
        }
        return pluginModules;
    }
}

2. 在初始化之后,取消 SDK 默认的 ExtensionModule,注册自定义的 ExtensionModule

private void setMyExtensionModule() {
    List<IExtensionModule> moduleList = RongExtensionManager.getInstance().getExtensionModules();
    IExtensionModule defaultModule = null;
    if (moduleList != null) {
        for (IExtensionModule module : moduleList) {
            if (module instanceof DefaultExtensionModule) {
                defaultModule = module;
                break;
            }
        }
        if (defaultModule != null) {
            RongExtensionManager.getInstance().unregisterExtensionModule(defaultModule);
            RongExtensionManager.getInstance().registerExtensionModule(new MyExtensionModule());
        }
    }
}

参考:http://rongcloud.cn/docs/android.html#ui_customize_extension