android - 在 twilio 中获取 channel 名称时出错。我在这里实现一对一聊天

标签 android twilio

我在检查 channel 名称时总是出错

mChatClient.getChannels().getChannel("one", new CallbackListener<Channel>() {
        @Override
        public void onSuccess(Channel channel) {
            if (channel != null) {
                joinChannel(channel);
            } else {
                mChatClient.getChannels().createChannel("one",
                        Channel.ChannelType.PUBLIC, new CallbackListener<Channel>() {
                            @Override
                            public void onSuccess(Channel channel) {
                                if (channel != null) {
                                    joinChannel(channel);
                                }
                            }

                            @Override
                            public void onError(ErrorInfo errorInfo) {
                                Log.e(TAG,"Error creating channel: " + errorInfo.getErrorText());
                            }
                        });
            }
        }

        @Override
        public void onError(ErrorInfo errorInfo) {
            Log.e(TAG,"Error retrieving channel: " + errorInfo.getErrorText());
        }

    });

在这个总是会出现错误的 block 中。我可以知道哪里出了问题吗?

最佳答案

你正在做的是:

  1. 正在检查 channel 是否可用。
  2. 如果可用,检查 channel 是否为空,如果是,则创建 channel 。

如果您查看代码,您会发现您正在 onSuccess 中进行创建,但是,如果找不到您的 channel ,则永远不会触发 onSuccess,所以它不会尝试创建 channel 。

您应该做的是在 onError 中创建 channel 。 (未经测试,可能有一些错误):

mChatClient.getChannels().getChannel("one", new CallbackListener<Channel>() {
    @Override
    public void onSuccess(Channel channel) {
        joinChannel(channel);
    }

    @Override
    public void onError(ErrorInfo errorInfo) {
        Log.e(TAG,"Error retrieving channel: " + errorInfo.getErrorText());
        mChatClient.getChannels().createChannel("one", Channel.ChannelType.PUBLIC, new CallbackListener<Channel>() {
            @Override
            public void onSuccess(Channel channel) {
                if (channel != null) {
                    joinChannel(channel);
                }
            }

            @Override
            public void onError(ErrorInfo errorInfo) {
                Log.e(TAG,"Error creating channel: " + errorInfo.getErrorText());
            }
        });
    }
});

关于android - 在 twilio 中获取 channel 名称时出错。我在这里实现一对一聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44515492/

相关文章:

php - Twilio 短信 mysql 插入

android - 当用户从手机/平板电脑上删除您的应用程序时,扩展文件是否会被删除?

java - Twitter4j, "Too many terms specified in query"

android - Jetpack Compose View 中未显示行项目之一

从 twilio 函数获取 token 后,Twilio 聊天客户端对于 iOS 为零

twilio 未找到请求的资源

javascript - Twilio 可编程聊天 javascript SDK 不工作

node.js - Twilio 11200 HTTP 检索失败——这是什么意思?

android - 如何将项目与 Gradle 文件同步?

c++ - 在 Android 上进行实时图形编程的最佳语言是什么?