This change introduces two new callbacks for applications to better
handle LE notification flow control and transport congestion. The
notification callback is invoked when the remote platform confirms an
indication or when a local notification has been passed to the
controller. No new notifications should be sent until a callback is
received.
Congestion callbacks are triggered when a GATT operation cannot be sent
to the local Bluetooth controller. Repeatedly calling
writeCharacteristic() for example will eventually trigger a congestion
callback. Applications cannot send additional data until a further
callback is received, indicating that the congestion has cleared up.
Also made server callbacks "oneway" in the AIDL definition file.
Change-Id: I7fa3324712205c79efce58e5e3df8b80a265a442
When there's more than one characteristic with the same UUID in
a service, the descriptors for the non-zero instanceID characteristics
were being assigned to the zero instanceID one, so descriptor
fetching wouldn't work. This is particularly bad for HID devices
since separate reports would show up as multiple characteristics
with the same UUID but there'd be no way to identify them
without their descriptor attributes.
Change-Id: I92bb4be34aa941dd3c6750874bef2e8a261ded92
Signed-off-by: Mike J. Chen <mjchen@google.com>
This makes our terminology consistent with the existing BluetoothHeadset profile
Also updated arguments to Context.bindService()
Change-Id: I27cc5a6fde256b1f5dccca53a7a15ec8f58691c2
Adding the 'oneway' attribute to the GattService interface definition
prevents applications from blocking callbacks.
Bug: 15489651
Change-Id: Id7fcf7f95539092f03e5773ca318b5472b55cb4d
Adding a new method to BluetoothDevice that lets callers know whether a remote device is
connected.
Change-Id: I6f7cb99147f3cdad1d676a93183856dbb4083a06
* commit '19bdd64c3b9dd16778575164c13c8af798832f01':
Address API review comments. 1. Moved le stuff to it's subpackage. Remove BluetoothLe for all classes except *Scanner, *ScanSetting, *Advertiser and *AdvertiseSettings. 2. Make all callbacks abstract classes instead of interfaces. 3. Moved AdvertisementData and ScanRecord out and removed AdvertiseBaseData 4. Removed newBuild and use new Builder for all builders. 5. Using setxxx in builders. 6. Misc other changes.
1. Moved le stuff to it's subpackage. Remove BluetoothLe for all classes
except *Scanner, *ScanSetting, *Advertiser and *AdvertiseSettings.
2. Make all callbacks abstract classes instead of interfaces.
3. Moved AdvertisementData and ScanRecord out and removed
AdvertiseBaseData
4. Removed newBuild and use new Builder for all builders.
5. Using setxxx in builders.
6. Misc other changes.
Fixes b/15140940
Change-Id: I32ae3d24a9491baf96048040b5ac78f6f731e468
NO_SQ: multi-project submit
It sometimes fails silently, resulting in callers using the socket
even though it hasn't been initialized.
http://b/13909270
Change-Id: Ied08982b51d44c3d2dec72785888ea6c6497a664
W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothInputDevice.doBind:262 android.bluetooth.BluetoothInputDevice.<init>:255 android.bluetooth.BluetoothAdapter.getProfileProxy:1365
W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothPan.doBind:148 android.bluetooth.BluetoothPan.<init>:140 android.bluetooth.BluetoothAdapter.getProfileProxy:1368
W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothMap.doBind:108 android.bluetooth.BluetoothMap.<init>:101 android.bluetooth.BluetoothAdapter.getProfileProxy:1374
W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothPbap.doBind:163 android.bluetooth.BluetoothPbap.<init>:156 com.android.settings.bluetooth.PbapServerProfile.<init>:68
Change-Id: I0a1e24ee71aef7d796fcee5692b9d19462a93637
* commit '13bd85772f6279d14303ec3a18615613c3722844':
DO NOT MERGE: Move advetise clean up to callback code. fixes b/13289050 Cherrypick from master to fix b/13289050