断开未经授权的发件人

Disconnect sender unauthorized

我正在为 android 创建一个应用程序以支持 google 使用 CastCompanionLibrary 库进行交互的视频投射。 VideoCastManager 在视频上的使用和用于消息(数据)交换部分的DataManagerCast 使用。 我想实现一个可以连接到特定会话的控件。我的想法是,第一个在 chromecast 上连接的发件人是 "owner of the session",其他发件人需要征得他的许可才能连接。我创建了一个命名空间,用于接收方和发送方会话所有者之间的通信,以便连接过程发生。 如果发件人未被授权,则它应该断开连接。 我查看了接收器参考,寻找接收器断开特定发送器的方法,但它仍然失败。有谁知道是否可以实现我的想法?

首先,您为什么要使用 DataCastManager? VideoCastManager 可以添加数据通道,这就是您需要进行通信的全部内容,因此仅使用 VideoCastManager。

就记忆而言,接收方无法断开单个发送方的连接,因此您的替代方法是:

  • 每个发送方在连接到接收方后,都会向接收方发送一条消息来注册自己。
  • 接收方查看连接设备的数量,如果是第一个,则认为所有者向发送方发回一条消息,让其知道它是所有者。如果它不是第一个,它会向那个发件人发回一条消息,通知它它需要从所有者那里获得授权(这样新的发件人就知道它应该等待授权)。同时,它向所有者发送一条消息,请求允许第二个进入。
  • 所有者将向接收者发回一条消息,以允许或禁止新的发送者连接。接收方然后向新的发送方发送一条消息,让其知道其请求是否被批准。
  • 如果获得许可,那么您在发件人中的代码将允许用户在应用程序中继续前进。如果未被授予,那么您的发件人应用程序中的逻辑可以阻止用户继续前进,或者可以断开发件人,或者可以只限制用户可以做的事情。