1

在版本 2 中,发件人应用程序能够发送消息。

func deviceManager(_ deviceManager: GCKDeviceManager!,
didConnectToCastApplication
applicationMetadata: GCKApplicationMetadata!,
sessionID: String!,
launchedApplication: Bool) {
  deviceManager.add(self.textChannel)
}

但是,API 说我们现在使用的是 GCKSessionManager 而不是 GCKDeviceManager。

API 说我必须有一个 GCKSession 添加 textChannel,我在这里做了:一旦会话开始,我添加 textChannel(因为 sessionManager.currentCastSession 在会话开始之前为 nil)。

func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKSession) {
    if session.device == connectionQueue {
        connectionQueue = nil
    }
    self.sessionManager!.currentCastSession!.add(textChannel)
    print("")
}

同时,我在另一个函数中发送短信:

let result = self.textChannel.sendTextMessage("\(self.textField.text)", error: &error)

但是结果总是假的,错误总是“Channel is not connected or is not registered with a session”。此外,当我这样做时:

print("isConnected1 \(self.textChannel.isConnected)")

结果是假的。你知道我还缺少哪些其他步骤来连接它吗?

4

1 回答 1

1

刚刚得知这是我的命名空间的问题。它现在连接。问题是命名空间与我的接收器代码中的命名空间不匹配。

fileprivate lazy var textChannel:TextChannel = {
return TextChannel(namespace: NAMESPACE)
}()
于 2018-02-07T02:56:24.527 回答