Commit Graph

179 Commits

Author SHA1 Message Date
Jaikumar Ganesh
fbe807d064 Make connection / disconnect failure more robust.
Add error codes so that the states can be tracked better.

Change-Id: Ic07a5d34589134b68dedeb4803ccb523aa01b567
2011-01-19 14:06:29 -08:00
Jaikumar Ganesh
d1287f5ef0 Fix bug in handling connect/disconnect multiple devices.
Multiple HID devices can be connected. There is no pointing
maintaining the global state. Check individual device state.

Bug: 3350904

Change-Id: I03d9a6015e39e4f9d7f68cc8bbdb19731129b4e6
2011-01-13 15:59:27 -08:00
Jaikumar Ganesh
ef28e7eb52 Remove auto connection on ACL connection.
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
2011-01-06 16:29:23 -08:00
Jaikumar Ganesh
c88b0c62c5 Follow the spec recommendation for keyboard pairing.
Generate a variable pin and show it to the user.

Change-Id: Id4aae7a16f25c67d6c6ead6fd936cb14087f3c7a
2011-01-06 14:18:42 -08:00
Jaikumar Ganesh
6eef14a7fc Expose insecure rfcomm Bluetooth API.
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
2010-12-23 13:05:23 -08:00
Jaikumar Ganesh
15c7439acb Add TYPE_BLUETOOTH network interface for reverse tethering.
Change-Id: I2aa61ce15f57aea9e8fd3a4cb56799c8bc51e998
2010-12-22 15:24:18 -08:00
Jaikumar Ganesh
5200c8ab72 Add EXTRA_LOCAL_ROLE to Pan State change intent.
This will help apps distinguish between reverse and normal tethering.

Change-Id: I5327ad75dc2cbf478e4f7c2cd6ef1dbe8fba9e93
2010-12-21 16:53:43 -08:00
Jaikumar Ganesh
2d1fc4e3f5 Remove delay with auto connection.
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
2010-12-13 15:58:44 -08:00
Jaikumar Ganesh
84690c88f3 Add direct calls to Bluez to add SDP records.
This helps Settings app to enable just the Headset service.

Change-Id: Ia9c39467df1e83d665e377313e16e6c54991f6d6
2010-12-13 11:37:41 -08:00
Jaikumar Ganesh
1c96a00685 Fix some formatting issues.
Review comments from a previous review.

Change-Id: Ifa6136f9bc5590ffb6a777240ad1e6607b616ca6
2010-11-24 13:07:29 -08:00
Jaikumar Ganesh
58b93c3640 Update BT code for voice capability cases.
1. Disable PBAP and Headset / Handsfree records.
2. Add API to query for local adapter UUIDs.

Change-Id: Ic84ba6a49738adc89a8695d3a4890f08562e0621
2010-11-24 10:49:47 -08:00
Jaikumar Ganesh
b0a1d01b4c Make AUDIO_STATE_CONNECTING in BluetoothHeadset public.
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
2010-11-11 10:59:48 -08:00
Jaikumar Ganesh
f2e6b13620 Add APIs for starting and stopping a virtual call.
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
2010-11-03 15:20:49 -07:00
Jaikumar Ganesh
30d181690e Add STATE_AUDIO_CONNECTING state.
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
2010-11-03 11:05:12 -07:00
Jaikumar Ganesh
7a0f816916 Disconnect PAN and Input devices on BT disable.
Also, add a missing break.

Change-Id: I228f80a4223de20e60d2f3828e3f63bdc14f5afc
2010-11-01 15:04:06 -07:00
Jaikumar Ganesh
e12774d4a8 Merge "Add an API call to get the ConnectionState of the Bluetooth Adapter." 2010-10-29 11:02:36 -07:00
Jaikumar Ganesh
470132509f Fix incoming connection problem
This fixes the incoming auto connection of profiles with certain remote devices.

Bug: 3136095
Change-Id: If26b5aa91403c0c7bd547e2970ee5bf2ac381416
2010-10-28 10:51:54 -07:00
Jaikumar Ganesh
c53cab20b2 Add an API call to get the ConnectionState of the Bluetooth Adapter.
Change-Id: Icd87d7720189034946aaa98e1a6c5d03ef4219e5
2010-10-26 16:03:01 -07:00
Jaikumar Ganesh
a46f2fb152 Implement ACTION_CONNECTION_STATE_CHANGED intent.
Change-Id: I6b5783c189c9796ebd85d9d54bdcb07949bef27e
2010-10-25 18:44:57 -07:00
Jaikumar Ganesh
5514029304 Fix docs builds.
Change-Id: I764bd0f0f6994cc468b7ebbea4a3dc7a44b9f89d
2010-10-25 17:07:51 -07:00
Jaikumar Ganesh
e775b3daab Expose Vendor Specific Headset Event Intent.
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
2010-10-25 11:07:58 -07:00
Jaikumar Ganesh
5a1e4cf83f Update BT APIs return type from Set to List.
Change-Id: Ia27220dd26cde13007f6938c830517ee7f6968ce
2010-10-22 11:36:28 -07:00
Jaikumar Ganesh
03cd78cf5e Convert return type of APIs from Set to List.
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
2010-10-22 11:36:27 -07:00
Scott Main
dbb78f0e4e am 81df9841: am 2c1dab44: am fda5b19c: Merge "docs: fix typo; surface dev guide link in package description" into froyo
Merge commit '81df9841c64e417fe2adfab0e8d694af09e07c0d'

* commit '81df9841c64e417fe2adfab0e8d694af09e07c0d':
  docs: fix typo; surface dev guide link in package description
2010-10-17 13:49:45 -07:00
Scott Main
81df9841c6 am 2c1dab44: am fda5b19c: Merge "docs: fix typo; surface dev guide link in package description" into froyo
Merge commit '2c1dab44834fb20deda9f380dae1bd7c1826b40b' into gingerbread-plus-aosp

* commit '2c1dab44834fb20deda9f380dae1bd7c1826b40b':
  docs: fix typo; surface dev guide link in package description
2010-10-15 18:23:34 -07:00
Jaikumar Ganesh
db3694d030 am a905d955: am a31cbd61: Merge "Remove STOPSHIP and reduce log spam." into gingerbread
Merge commit 'a905d9551103c5be465429ffeb0352b78058457e'

* commit 'a905d9551103c5be465429ffeb0352b78058457e':
  Remove STOPSHIP and reduce log spam.
2010-10-15 12:44:39 -07:00
Scott Main
2c1dab4483 am fda5b19c: Merge "docs: fix typo; surface dev guide link in package description" into froyo
Merge commit 'fda5b19c757645e957c2a224f269aefe39fb1e1c' into gingerbread

* commit 'fda5b19c757645e957c2a224f269aefe39fb1e1c':
  docs: fix typo; surface dev guide link in package description
2010-10-15 12:35:04 -07:00
Scott Main
36cdecd89d docs: fix typo; surface dev guide link in package description
Change-Id: I2dc09bb6b79cbe3f80819d6193eb0d8a3565310d
2010-10-15 10:19:27 -07:00
Jaikumar Ganesh
72cd64b20e resolved conflicts for merge of bbb90d13 to master
Change-Id: I85de73f6e11e7547a006d41ca49021bca19af14b
2010-10-15 10:02:57 -07:00
Jaikumar Ganesh
c8e87e3ce6 am 373a6961: am 64f42803: Merge "Bluez doesn\'t handle disconnect while connecting well. Defer the message." into gingerbread
Merge commit '373a69614e534ae04dddd79c92933b6d8969fad7'

* commit '373a69614e534ae04dddd79c92933b6d8969fad7':
  Bluez doesn't handle disconnect while connecting well.
2010-10-14 21:19:04 -07:00
Jaikumar Ganesh
5b9895c016 Merge "Disconnect PBAP while disconnecting HFP profile." 2010-10-14 16:18:22 -07:00
Jaikumar Ganesh
2beaf7316f 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: I04821daae6588955fbfea01472e6a1b6f9212608
2010-10-14 16:14:38 -07:00
Jaikumar Ganesh
0b9ba91fa5 Merge "Add function to check for AVRCP target to send volume keys." 2010-10-14 11:03:42 -07:00
Jaikumar Ganesh
41d5c805d9 Add function to check for AVRCP target to send volume keys.
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
2010-10-13 19:25:33 -07:00
Jaikumar Ganesh
a905d95511 am a31cbd61: Merge "Remove STOPSHIP and reduce log spam." into gingerbread
Merge commit 'a31cbd61bc53730d756464b0c273475c4f738066' into gingerbread-plus-aosp

* commit 'a31cbd61bc53730d756464b0c273475c4f738066':
  Remove STOPSHIP and reduce log spam.
2010-10-13 16:56:27 -07:00
Jaikumar Ganesh
bbb90d134a am c008ca96: Merge "Work around for errant headsets." into gingerbread
Merge commit 'c008ca96bb32289958010dcf8f247c35ab9b1f18' into gingerbread-plus-aosp

* commit 'c008ca96bb32289958010dcf8f247c35ab9b1f18':
  Work around for errant headsets.
2010-10-13 16:48:41 -07:00
Jaikumar Ganesh
bdb1d9320b Remove STOPSHIP and reduce log spam.
We still need some logs, as it helped me fix the errant headset bug.

Bug: 3095000
Change-Id: If12601430e6dc30490df1ff86fc3f9d4d455e6d5
2010-10-13 16:48:02 -07:00
Jaikumar Ganesh
70a053bf1b 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
2010-10-13 16:38:28 -07:00
Jaikumar Ganesh
373a69614e am 64f42803: Merge "Bluez doesn\'t handle disconnect while connecting well. Defer the message." into gingerbread
Merge commit '64f4280313c5b498a3238d174c4d14ca2187604b' into gingerbread-plus-aosp

* commit '64f4280313c5b498a3238d174c4d14ca2187604b':
  Bluez doesn't handle disconnect while connecting well.
2010-10-12 19:06:13 -07:00
Jaikumar Ganesh
adbda6f094 Bluez doesn't handle disconnect while connecting well.
Defer the message.

Bug: 3076404
Change-Id: Id62e1008346f492a85e714240a832a061def1786
2010-10-12 16:58:06 -07:00
Jaikumar Ganesh
f5cae7d1c5 am 38702d5f: Merge "DO NOT MERGE: Disconnect PBAP while disconnecting HFP profile." into gingerbread
Merge commit '38702d5f1c42e2dfcc8fa5472c8fe842b4056914' into gingerbread-plus-aosp

* commit '38702d5f1c42e2dfcc8fa5472c8fe842b4056914':
  DO NOT MERGE: Disconnect PBAP while disconnecting HFP profile.
2010-10-07 16:58:13 -07:00
Jaikumar Ganesh
59453c947a 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
2010-10-06 19:23:38 +02:00
Jake Hamby
980d40b568 resolved conflicts for merge of 738aadd7 to master
Change-Id: I8810cc6dbd532de002d6a623ad93e86afb48c0b4
2010-09-30 19:33:43 -07:00
Jake Hamby
738aadd70f resolved conflicts for merge of 0a972acf to gingerbread-plus-aosp
Change-Id: Id8dc5038edc214b4433bdf690243f2f5fe5b4812
2010-09-30 16:29:13 -07:00
Jake Hamby
f51eadaf1f Typo fixes in comments and minor code cleanups.
* 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
2010-09-30 15:43:34 -07:00
Jaikumar Ganesh
96a79830ea Update code for new BT public APIs.
Change-Id: Id730fb6226db59f3a0416111c4790653c2fccb0b
2010-09-28 20:00:53 -07:00
Jaikumar Ganesh
62c37efc9e New public APIs for BluetoothA2dp and BluetoothHeadset profiles.
Change-Id: I1cc4b109542dfd62473cb95797c8c3d0d15725f4
2010-09-28 19:53:53 -07:00
Jake Hamby
14769a8690 am eb3b40af: am 0f584306: Fix Bluetooth Javadoc to clarify the maximum device name length.
Merge commit 'eb3b40af974d818cab66bf0a728c8bdec4f6f715'

* commit 'eb3b40af974d818cab66bf0a728c8bdec4f6f715':
  Fix Bluetooth Javadoc to clarify the maximum device name length.
2010-09-16 23:25:59 -07:00
Jake Hamby
eb3b40af97 am 0f584306: 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.
2010-09-16 22:15:55 -07:00
Jake Hamby
0f5843069b 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
2010-09-16 18:21:07 -07:00