AndroidTVRemoteControl
本项目实现了与 Android TV OS 设备的配对和连接,使用 protovol v2,并遵循此处描述的方法 Google TV (aka Android TV) Remote Control (v2)。
兼容性
AndroidTVRemoteControl 支持 iOS 版本 14 或更高版本以及 Swift 4 及以上版本。
安装
Swift Package Manager
在 Xcode 中,前往:文件 -> Swift 包 -> 添加包依赖...
输入 CurvedTextView GitHub 仓库地址 - https://github.com/odyshewroman/AndroidTVRemoteControl
选择版本
导入 AndroidTVRemoteControl 模块并开始使用 AndroidTVRemoteControl
用法
首先,您需要一个证书以建立与 Android TV OS 设备的 TLS 连接。由于连接是在本地网络上进行的,因此使用自签名的证书是合适的。
整个过程分为两部分 - 配对 和 发送 命令(是的,在这其中也有一个内部的配对过程)。
接下来,您需要创建一个对象 - CryptoManager,在闭包中传递您的逻辑以获取证书的公钥。然后创建 TLSManager,并传递获取 CFArray 的逻辑 - 包含从证书中提取的每个项目的字典的数组。您还需要设置一个闭包,在这个闭包中,您将连接到 Android TV OS 设备时从 Android TV OS 设备获取的 SecTrust 传递给 CryptoManager。
配对
现在您可以创建一个 配对管理器,传入 TLSManager 和 CryptoManager 作为参数。设置一个闭包来处理配对过程状态,并调用连接方法。当您收到 waitingCode
状态时,在 Android TV OS 设备屏幕上会显示三个十六进制数字(6个字符,您可以验证 - 用户输入应仅包含数字 0-9 和字符 A-F)。接收到含这些字符的字符串后,您需要调用 配对管理器 的 sendSecret
方法。在成功的情况下,您将收到 successPaired
状态。
远程
恭喜,您已成功连接到 Android TV OS 设备! 如果您之前已与此设备配对,您可以跳过配对和代码输入步骤,直接进入命令发送过程。
要发送命令,您需要使用 RemoteManager 对象。此外,设置一个闭包来处理连接过程状态并调用 connect
方法。当达到 connected 状态时,您可以使用 send
方法开始向 Android TV OS 设备发送消息。实际上,有时设备可能不会对指定的消息序列做出响应,但实际上已经准备好接受命令。在这种情况下,您可以在连接后使用短暂的超时。如果在超时时间内状态未变更为 error,您可以认为设备已准备好接受您的命令。