Multiple HID devices can be connected. There is no pointing
maintaining the global state. Check individual device state.
Bug: 3350904
Change-Id: I03d9a6015e39e4f9d7f68cc8bbdb19731129b4e6
There is no need for this and causes problems with HID.
Its the reponsibility of the remote device to initiate connection
when back in range.
Fixes bug: 3282682
Change-Id: I9fed15d4ce0ae4539059001db54cc302a55e2015
This complements the secure rfcomm API.
The link key is unauthenticated and is subject to MITM attacks.
The link key may be encrypted depending on the type of Bluetooth device.
This helps apps which don't need the extra security or
have their own security layer built on top of the rfcomm link.
Change-Id: I71b2fa8de469ef98faa204b4dafac18a8e21d0d9
SDP records are now registered with a dbus call so we don't have to wait
for initiating auto connections.
Also reduce time to connect other profiles case by 2 secs.
Change-Id: I8f0eab6a95d3bfaf11a8eb7495a024949639d7fc
As the SCO connection is done on a separate thread, this
state is needed to prevent silent failures in case of APIs like
voicerecognition.
Change-Id: Id08725323a2c847df4d3bd9f60e42fde46100707
This API is useful for cases where the user wants to play
their voicemail, for example, through their Bluetooth headsets.
Original Change by: kausik@broadcom.com
Change-Id: I6bc8929c359d698a1bacdefab4425e3a0ac5d8dd
Why is it needed: SCO audio connections can fail.
Currently no indication is given to clients which are waiting
for SCO connections. This was working fine before because
SCO connections where blocking calls, which was wrong in itself.
Change-Id: Ic449b2db8506a7a5ae6be6c68715f1a7343f9e40
The Bluetooth Headset spec doesn't cover all cases.
For example, there is nothing defined to show the battery status of
the headset on the phone. This intent allows 3rd party applications
to communicate effectively with vendor headsets. For example, Plantronics
has an app for Android headsets and when used with Plantronics
headsets, they will be able to use extra information from the headset.
Change-Id: Ib997327103cbbe57d64c52ba27f74162b6769798
Most of the time it will either be empty or have 1 device.
Using list makes it much a better API and since its supported
by the AIDL format, the code becomes much nicer.
Change-Id: I5a2508b33ba754fc8cc738409d658e1235aaf2cf
Merge commit '2c1dab44834fb20deda9f380dae1bd7c1826b40b' into gingerbread-plus-aosp
* commit '2c1dab44834fb20deda9f380dae1bd7c1826b40b':
docs: fix typo; surface dev guide link in package description
Merge commit 'fda5b19c757645e957c2a224f269aefe39fb1e1c' into gingerbread
* commit 'fda5b19c757645e957c2a224f269aefe39fb1e1c':
docs: fix typo; surface dev guide link in package description
PBAP profile is associated with HFP profile. Disconnect PBAP
profile while disconnecting HFP profile. We ever never doing this
and were expecting the remote end to do it. So when the user
disconnects a headset, we will end up with the ACL link still up
because PBAP has not been disconnected.
This is little bit of a hack till PBAP profile is converted to
use the new profile APIs.
Change-Id: I04821daae6588955fbfea01472e6a1b6f9212608
Currently, when A2DP is connected and the user changes volume
keys on the device, we just change the volume on the device.
We are not supposed to do that. The white paper recommendation
is to keep the volume stream at max and just send the volume
keys over. But then not all A2DP headsets act as AVRCP targets,
hence check for that.
So now the media code should use the API and not change the volume
at the device but just send the keys.
Bug: 3071356
Change-Id: I03a8b6f7619cf860c4e63979bf4903ded9ecd314
Merge commit 'c008ca96bb32289958010dcf8f247c35ab9b1f18' into gingerbread-plus-aosp
* commit 'c008ca96bb32289958010dcf8f247c35ab9b1f18':
Work around for errant headsets.
1. Some headsets send an AVCTP connection before an AVDTP connection
When that AVCTP connection fails, we get stuck in IncomingA2DP state
because we don't handle AVCTP signals for now.
We need to handle the signals and fix it better.
2. Also when ACL gets disconnected, reset state i.e
when the low level connection disconnected reset our state.
This is like a fail safe in case we get stuck.
Bug: 3051490
Change-Id: Ibcf188103999ffb1e08c36c2554504c639fb7f50
Merge commit '38702d5f1c42e2dfcc8fa5472c8fe842b4056914' into gingerbread-plus-aosp
* commit '38702d5f1c42e2dfcc8fa5472c8fe842b4056914':
DO NOT MERGE: Disconnect PBAP while disconnecting HFP profile.
PBAP profile is associated with HFP profile. Disconnect PBAP
profile while disconnecting HFP profile. We ever never doing this
and were expecting the remote end to do it. So when the user
disconnects a headset, we will end up with the ACL link still up
because PBAP has not been disconnected.
This is little bit of a hack till PBAP profile is converted to
use the new profile APIs.
Change-Id: I5f68b228fd5e607605928a52343ad4b86c58ac0b
* Fix some typos in Javadoc and log messages.
* Remove redundant initializer in BluetoothAdapter.readOutOfBandData()
* Use canonical "UTF-8" charset name instead of "UTF8" in
BluetoothDevice.convertPinToBytes()
Change-Id: I58cd5dc48a7ad0053d204c5f590b4b3d438d8672
Merge commit 'eb3b40af974d818cab66bf0a728c8bdec4f6f715'
* commit 'eb3b40af974d818cab66bf0a728c8bdec4f6f715':
Fix Bluetooth Javadoc to clarify the maximum device name length.
Merge commit '0f5843069bd419fba4fb253986645dfbca0784b7' into gingerbread-plus-aosp
* commit '0f5843069bd419fba4fb253986645dfbca0784b7':
Fix Bluetooth Javadoc to clarify the maximum device name length.
The maximum length of a Bluetooth device name is 248 bytes using
UTF-8 encoding. Updated the Javadoc to clarify that the length is
limited by the number of UTF-8 bytes and not the number of characters.
Change-Id: I135671f5ee6c5eb6372f3fbbc5fccb02de65e6c4