0

私は現在、Bluetooth Low Energy タグと iPhone との相互作用を含むプロジェクトに取り組んでいます。iPhoneのBluetoothタグで押されたキーを登録する方法を知りたいです。つまり、ユーザーがタグのキーを押すと、iPhone のアプリが特定の機能を認識して実行できるようにする必要があります (たとえば、音を出すなど)。

Texas Instruments 2540 タグを使用しており、そのサンプル コードを参照していました。彼らのコードでは、

キー押下通知を有効にする必要があります。タグでキーが押されると、対応するサービスと特性の UUID 値が更新されます。アプリでは、「didUpdateValueForCharacteristic」デリゲート メソッドが呼び出され、適切な関数を呼び出すことができます。

ただし、Bluetooth タグを設計している会社は、iPhone アプリ (Bluetooth サーバーとして機能する iPhone) でサービスを作成し、Bluetooth タグがクライアントとして機能する iPhone に警告することを主張しています。

私のコードの抜粋は

Key_Press_Notification_Service 0xFFE0
を定義する Key_Press_Notification_Characterisitc 0xFFEA を定義する

-(void) enableButtons:(CBPeripheral *)p
{
[自己通知: Key_Press_Notification_ServicecharacteristicUUID:Key_Press_Notification_CharacterisitcUUID p:p on:YES];
}

// -(void) 通知... メソッド

// - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic.. メソッド


これが可能かどうか教えていただけますか? また、BlueTooth タグから押されたキーを iPhone で識別されるように登録するにはどうすればよいでしょうか。

4

2 に答える 2

3

マンジュア、

ペリフェラルと forCharacteristic:characteristic を取得したら、通知を有効にするだけです。

// begin notification for the characteristic.
[peripheral setNotifyValue:YES forCharacteristic:characteristic];

次に、CBPeripheralDelegate を使用して更新を受け取ります。

- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
于 2012-05-22T19:56:13.253 に答える
1

これは、 http://developer.bluetooth.org/gatt/profiles/Pages/ProfileViewer.aspx?u=org.bluetooth.profile.find_me.xmlで説明されている「FindMe プロファイル」シナリオのように見えます。"Find me locator" (bluetooth タグ) と "Find me target" (iPhone) には、それぞれ "Immediate Alert" サービスが必要です。Immediate Alert サービスの動作については、http://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.immediate_alert.xmlで説明されています。

タグでキーが押されると、iPhone に存在する Alert Level 特性に書き込みを実行する必要があります。

または、独自のカスタム プロファイルを作成することもできます。つまり、キーが押されると、タグの特性によって通知が実行されます。次に、iPhone アプリはこの特性にサブスクライブし、キーが押されたときに通知を受けます。もちろん、カスタム プロファイルは、タグがそのままでは Bluetooth Smart Ready デバイスと互換性がないことを意味します。

于 2012-05-16T07:17:52.040 に答える