2016-08-04 18 views
1

私のアプリケーションではBluetooth低エネルギーが使用されており、通知と表示が必要です。しかし、私は適応症を有効にすることができませんでした。通知と表示を同時に有効にすることは可能ですか?はいの場合、それを行うには以下のメソッドが有効ですか?Android BLEの同時通知と表示

gattInstance.setCharacteristicNotification(charac, true); 
    BluetoothGattDescriptor desc = charac.getDescriptor(UUID_CCCD); 
    desc.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); 
    desc.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE); 
    gattInstance.writeDescriptor(desc); 

答えて

0

あなたがdesc.setValueを呼び出すと、実際に以前の値を上書きします。ここでは、INDICATIONを有効にしてCCCDを作成します。

コアの仕様v4.2、§3.G.3.3.3.3、CCCDはビットフィールドなので、16ビットのリトルエンディアン値0x0003を書き込むことができるはずです(BluetoothGattDescriptorではこの)。

+0

'ENABLE_NOTIFICATION_VALUE = {0x01、0x00}'と 'ENABLE_INDICATION_VALUE = {0x02、0x00}'です。だから、もし私が 'enableNOTIFandIND = {0x03、0x00}'を使うと、うまくいくかもしれません。 – AmiguelS

+0

はい、うまくいく可能性があります。しかし、それが実際に表示と通知の両方を送信するなら、それは周辺機器にもあります。とにかく、両方とも有効にしたいのですが?より良いやり方で達成したいことをあなたが解決できるかのようです。あなたが謝辞を欲しがっているのであれば、アプリケーションがそれを処理したことを本当に確かめることはできないので、表示は全く無意味です。スタックがそれを取得しただけです(おそらく、アプリケーションが応答しなかったか、クラッシュしていても、Androidはまだ確認応答を返します)。 – Emil

+0

@AmiguelS、はい、それは値です。 – Nipo

関連する問題