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
Merge commit 'cc5494c9996f809e36539b24e8b6b67683383d29' into gingerbread-plus-aosp
* commit 'cc5494c9996f809e36539b24e8b6b67683383d29':
Out Of Band API for Secure Simple Pairing.
Added ACTION_VENDOR_SPECIFIC_HEADSET_EVENT,
EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD, EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS.
BluetoothAssignedNumbers.java (new file):
A home for BT assigned numbers, beginning with the company IDs.
HeadsetBase.java:
Reformatted some code.
AtCommandHandler.java:
Fixed comment typos.
Change-Id: I34d6f248166305d72be66632779fc963b894379c
Added EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID.
Fixed a minor comment typo.
Change-Id: I8550692c13510a853c894b2d108bef4520d931c2
Merge commit '4a671a745202cb15cc668d46400731a03b068558'
* commit '4a671a745202cb15cc668d46400731a03b068558':
Update javadoc for the API and change return of getBondedDevices().
Merge commit '4e25db6a51c4182139b85e3b01317d161f944bbb'
* commit '4e25db6a51c4182139b85e3b01317d161f944bbb':
Check whether Bluetooth is enabled before making any API calls.