首页 > 解决方案 > 如何将用户加入到在 twilio 中使用 android 创建的频道

问题描述

我在 Android 上有 2 个应用程序,在我的应用程序 Patient 中,我使用令牌创建客户端以在 Twilio 中创建通道,我创建的通道是以下保存在字符串中的1Doc_3Pac,我可以从 Patient 应用程序加入此通道而无需使用通道方法.join 的问题。但是当我尝试使用相同的方法从我的护理应用程序加入这个频道时,创建一个客户端,然后加入一个我找不到的频道。在我看来,我使用的方法是不够的,我在这里留下我的代码。

在这里,我使用令牌创建我的客户端。

 public void build(String token, final TaskCompletionListener<ChatClient, String> listener) {
        ChatClient.Properties props = new ChatClient.Properties.Builder()
                .createProperties();

        buildListener = listener;
        ChatClient.create(context.getApplicationContext(),
                token,
                props,
                this);
    }

在这里,我与客户一起创建我的频道

public void createCustomizedChannel(String name, final TaskCompletionListener<Channel, String> listener) {
            mChannelsObject.channelBuilder()
                    .withFriendlyName(name)
                    .withType(Channel.ChannelType.PUBLIC)
                    .build(new CallbackListener<Channel>() {
                        @Override
                        public void onSuccess(final Channel newChannel) {
                            if (newChannel != null) {
                                listener.onSuccess(newChannel);
                            }
                        }

                        @Override
                        public void onError(ErrorInfo errorInfo) {

                        }
                    });
        }

这里加入了我自定义创建的频道

public void joinChannel(final Channel channel, final TaskCompletionListener<Channel, String> listener) {
        channel.join(new StatusListener() {
            @Override
            public void onSuccess() {
                listener.onSuccess(channel);
            }

            @Override
            public void onError(ErrorInfo errorInfo) {
                super.onError(errorInfo);
            }
        });
    }

在我的护士应用程序中,我找不到我的频道1Doc_3Pac

 private void loadChannels() {
        mChatClient.getChannels().getChannel("1Doc_3Pac ", new CallbackListener<Channel>() {
            @Override
            public void onSuccess(Channel channel) {
                if (channel != null) {
                    Log.d(TAG, "Joining Channel: " + DEFAULT_CHANNEL_NAME);
                    joinChannel(channel);
                } else {
                    Log.d(TAG, "Creating Channel: " + DEFAULT_CHANNEL_NAME);

                    mChatClient.getChannels().createChannel(DEFAULT_CHANNEL_NAME,
                            Channel.ChannelType.PUBLIC, new CallbackListener<Channel>() {
                                @Override
                                public void onSuccess(Channel channel) {
                                    if (channel != null) {
                                        Log.d(TAG, "Joining Channel: " + DEFAULT_CHANNEL_NAME);
                                        joinChannel(channel);
                                    }
                                }

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

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

        });

使用此消息落在 onError 方法上

找不到频道

标签: androidtwiliochattwilio-api

解决方案


推荐阅读