対応する iPad アプリと通信できるように、tvOS で動作する新しい Apple TV をカスタム サービスを備えた Bluetooth 周辺機器としてセットアップしたいと考えています(iPad は中心的な Bluetooth デバイスであり、Apple TV アプリのリモートと考えることができます)。 )。
ここでこれを行うための Apple からのプログラミングガイドがありますが、絶望的に古くなっているようです(プレリリース版であっても):
iOS 9.1 / tvOS のリリース ノートによると、クラスとクラスの両方のinit メソッドが削除され、tvOS (XCode 7.1 を使用) では使用できなくなりました。関連する CoreBluetooth フレームワークの変更点は、こちらで確認できます。CBMutableCharacteristic
CBMutableService
startAdvertising
クラスのメソッドを直接使用しようとしましたが、次のようなエラーなしでデリゲート メソッドをCBPeripheralManager
呼び出しています。peripheralManagerDidStartAdvertising
let peripheralManager = CBPeripheralManager()
let myCustomServiceUUID = CBUUID(string: "12345678-ABCD-1234-ABCD-123456789ABC")
func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) {
if peripheral.state == .PoweredOn {
print("Bluetooth state is OK.")
self.startProvidingSecondScreenForTestsService()
self.peripheralManager.startAdvertising([CBAdvertisementDataServiceUUIDsKey: [self.myCustomServiceUUID]])
}
}
しかし、途中で特性を定義せずにこの方法でデータを交換する方法がわかりません。
ここで何かを見逃したのでしょうか(おそらく、それらのオブジェクトを定義する代替/より良い方法があるかもしれません)、それともAppleは何らかの理由で新しい Apple TV のカスタム サービスと特性の機能を故意に削除したのでしょうか?