BluetoothMidiDevice: change write type to support JamStik

Temporarily use a Request instead of a Command so that the JamStik
will be properly enabled.

Bug: 24207964
Change-Id: I3d11732958c46e6039405b5969d5af0db8032fb9
Signed-off-by: Phil Burk <philburk@google.com>
(cherry picked from commit 95129f50c6)
This commit is contained in:
Phil Burk
2015-09-22 12:07:31 -07:00
committed by Glenn Kasten
parent 11af18783d
commit af3e489c1e

View File

@@ -147,14 +147,22 @@ public final class BluetoothMidiDevice {
// switch to receiving notifications after initial characteristic read
mBluetoothGatt.setCharacteristicNotification(characteristic, true);
// Use writeType that requests acknowledgement.
// This improves compatibility with various BLE-MIDI devices.
int originalWriteType = characteristic.getWriteType();
characteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
CLIENT_CHARACTERISTIC_CONFIG);
if (descriptor != null) {
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
boolean result = mBluetoothGatt.writeDescriptor(descriptor);
Log.d(TAG, "writeDescriptor returned " + result);
} else {
Log.e(TAG, "No CLIENT_CHARACTERISTIC_CONFIG for device " + mBluetoothDevice);
}
characteristic.setWriteType(originalWriteType);
}
@Override