Commit Graph

198 Commits

Author SHA1 Message Date
Jake Hamby
9a62c9cd65 Refactor android.server.BluetoothService classes.
Several cleanups to BluetoothService:
- Move BluetoothService.BondState inner class to top level.
- Extract adapter and remote device properties cache management
  logic into two new classes: BluetoothAdapterProperties and
  BluetoothDeviceProperties.
- Add getter methods for other classes in the package to access
  the new properties cache objects for multi-part operations.
- Inline log() method in BluetoothService and selected the
  appropriate Log method (Log.d, Log.w, Log.e) for each message.
- Refactor dump() method into smaller sized pieces.
- Clean up logic of updateCountersAndCheckForConnectionStateChange()
  method for better readability.
- Change sendConnectionStateChange() to return instead of sending
  an intent if the current or previous state values are invalid.
  Previously the code sent an intent with -1 for the invalid state.
- Added Javadoc comments to document the methods that are called from
  native Bluez code.
- Fixed some typos and code style issues.

Original Change by: Jake Hamby
Modified by: Jaikumar Ganesh

Change-Id: I76ebac00ecd29566dcb2d1ad3e7a486b7530ce24
2011-02-24 16:26:20 -08:00
Jaikumar Ganesh
74ef119945 Make BluetoothPan inherit from BluetoothProfile.
Change-Id: Ibd3e24e391be93ebe2cf975bd075efb68e10c1ff
2011-02-23 15:49:15 -08:00
Jaikumar Ganesh
4ab0e7746f Make BluetoothInputDevice inherit from BluetoothProfile.
This makes it in sync with BluetoothHeadset and BluetoothA2dp profiles.

Change-Id: I3ddb1d18b04aacb173b7bc376bca21c277a6afe4
2011-02-22 10:42:26 -08:00
Jaikumar Ganesh
17689de1cf am 25bbfda2: am 485d577a: Merge "Fix BluetoothAdapter Connection change intent doc." into honeycomb
* commit '25bbfda2442e6d8f55bdc8e2dd0eca18b0ba594b':
  Fix BluetoothAdapter Connection change intent doc.
2011-02-01 17:12:23 -08:00
Jaikumar Ganesh
0b5b35f8a1 Fix BluetoothAdapter Connection change intent doc.
Bug: 3414206
Change-Id: Icf87e28e11b0b5072fe546225bbfb1dc68487ef0
2011-02-01 16:53:14 -08:00
Scott Main
c42eb2cce7 am d2b87091: am 0f2e2b8b: Merge "Update package descriptions with editorial revisions. Notably, this removes exessive info about resources from the content package, because it\'s not a good location and the info is avilable in the dev guide, but also added some of the
* commit 'd2b87091cc30c575496eb78ebea88297da775359':
  Update package descriptions with editorial revisions. Notably, this removes exessive info about resources from the content package, because it's not a good location and the info is avilable in the dev guide, but also added some of the info to the Resources class description.
2011-01-26 19:08:55 -08:00
Scott Main
f4f05b8f24 Update package descriptions with editorial revisions.
Notably, this removes exessive info about resources
from the content package, because it's not a good location
and the info is avilable in the dev guide, but also
added some of the info to the Resources class description.

Change-Id: Ie78af26c9cec66314deb98e53078f48e16c08e70
2011-01-26 14:58:19 -08:00
Jaikumar Ganesh
3b4c86af20 am 48f73779: am e9b644fc: Merge "Fix some unmatched javadoc tags." into honeycomb
* commit '48f737798070471cefeeaf418c75ea55f8b925e9':
  Fix some unmatched javadoc tags.
2011-01-26 12:27:58 -08:00
Robert Greenwalt
9e751f0fb5 Merge "Make the interface with DHCP IPv6 capable." 2011-01-26 11:56:19 -08:00
Jaikumar Ganesh
0706fed520 Fix some unmatched javadoc tags.
Bug: 3392175
Change-Id: I84aa86c07060bc4ba399fd5c8f7cda162b432031
2011-01-26 11:46:56 -08:00
Robert Greenwalt
0216e61819 Make the interface with DHCP IPv6 capable.
It doesn't work (yet) for IPv6, but we can remove v4-centric notions from the framework.

bug:2542681
Change-Id: I21c058f5c88d07706c9265bf0ea902fc90357e56
2011-01-26 09:10:01 -08:00
Jaikumar Ganesh
5a9ac240fe Revert "Temporary Changes for certification of SCO."
This reverts commit 75c2701454.

Change-Id: Ic63cdbbb06b9ed2d9c48e8b29cc376059ecadebf
2011-01-26 09:08:50 -08:00
Jaikumar Ganesh
c8fa4ff838 Improve readability of java docs for the public APIs.
Change-Id: I0a0f1be04ed2ea2c14498a1a2ed4b050191ec95b
2011-01-25 16:53:39 -08:00
Jaikumar Ganesh
dde68c64fd Rename virtual call API to ScoUsingVirtualCall.
This API makes more sense with regard to headset profile.
Bug: 3381532

Change-Id: Ife07d101a3b04bcddb31e7ae86712e1d97a660c5
2011-01-25 13:49:35 -08:00
Jaikumar Ganesh
8db58ea52c Merge "Connect other profiles when priority is auto connect." into honeycomb 2011-01-21 21:24:49 -08:00
Jaikumar Ganesh
a8d18865a4 Connect other profiles when priority is auto connect.
ACL auto connection was removed so other profiles
won't auto connect when priority was auto connect.

Reduced connect other profiles time delay.

Bug: 3281016
Change-Id: I8d98fd0d9bace193d619d7f241fff22f07e3e935
2011-01-21 19:22:23 -08:00
Jaikumar Ganesh
c4cc3ea48a Merge "Temporary Changes for certification of SCO." into honeycomb 2011-01-21 15:43:42 -08:00
Jaikumar Ganesh
75c2701454 Temporary Changes for certification of SCO.
Bug: 3349475
Change-Id: I555b127a1d9218494cd05c07c9e9f29628f3bc74
2011-01-21 15:17:23 -08:00
Scott Main
299ae67d03 docs: small javadoc, but also make the existing getProfileProxy docs visible... had wrong comment tag
Change-Id: Ia4b2178057c0263ec8f835342815082de87b3af1
2011-01-19 21:13:18 -08:00
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