2 番目の BLE セントラル アプリと正常に接続する Bluetooth Low Energy ペリフェラル アプリを開発しました。ただし、周辺機器が提供するサービスの特徴の 1 つについて、セントラル アプリに通知をサブスクライブさせることができません。中央アプリには、次のものがあります。
- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
{
if ([service.UUID isEqual:[CBUUID UUIDWithString:IMMEDIATE_ALERT_SERVICE_UUID]]) {
for (CBCharacteristic *aChar in service.characteristics) {
if ([aChar.UUID isEqual:[CBUUID UUIDWithString:ALERT_LEVEL_CHARACTERISTIC_UUID]]) {
[peripheral setNotifyValue:YES forCharacteristic:aChar];
残念ながら、これは失敗し、デリゲート メソッドperipheral:didUpdateNotificationStateForCharacteristicでエラーが受信されます(エラー タイプは「不明」です)。上記のコード (aChar) で特徴的なオブジェクトを出力すると、次のようになります。
<CBCharacteristic: 0x1464f560, UUID = 2A06, properties = 0x2, value = (null), notifying = NO>
通知 = NO であることに注意してください。特性が通知できるようにペリフェラルを設定するにはどうすればよいですか?