History log of /frameworks/base/core/java/android/server/BluetoothService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0e09030977aea8b40fd177139528d4b5637c9771 29-Mar-2010 Jaikumar Ganesh <jaikumar@google.com> Relax the requirement of making a DBUS call for creating the Bluez Device.

Bug: 2136464

When the bluez device is created, we get the onDeviceCreated signal.
We add it to our cache when that happens. We can have a device created
even when its not bonded - as a result of OPP. So use this cache to avoid
a DBUS call to Bluez.

Change-Id: I9465da7d72a12a6888128ff40ac1fe598cbae3c3
/frameworks/base/core/java/android/server/BluetoothService.java
b7e029d03c115ed65cdea9b2bba307e882c308e2 10-Mar-2010 Jaikumar Ganesh <jaikumar@google.com> Add an API to set the link timeout.

This fixes the problem where the car dock is
powered on and off pretty quickly.

Change-Id: I8724641b8c337019f089b005cb236fc90549cf6f
/frameworks/base/core/java/android/server/BluetoothService.java
c06fe59cb5a1bdd2a87d1aff3e35edf29a859979 08-Jan-2010 Jaikumar Ganesh <jaikumar@google.com> Move auto pairing data to a file, add values dynamically.
/frameworks/base/core/java/android/server/BluetoothService.java
5f61416305c47c4db0b94c0cf500e9a9d11d4cdb 17-Feb-2010 Kenny Root <kroot@google.com> Add hashCode() to BluetoothService$RemoteService

RemoteService is used as a key in a HashMap, so it should have a
hashCode()

Change-Id: I69b72991474f4d5ec11c0620a6e66eb0c44d04b6
/frameworks/base/core/java/android/server/BluetoothService.java
44303922f14ac71b446a6e50e1180be4c8fed2c7 02-Dec-2009 Jeff Sharkey <jsharkey@android.com> Watch for "bluetooth" in list of toggleable radios.

Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS is a list of
radios that can be toggled while in airplane mode. This
change adds logic to BluetoothService to allow enabling
when Settings.System.RADIO_BLUETOOTH appears in that list.

Fixes http://b/2297314
/frameworks/base/core/java/android/server/BluetoothService.java
368c332ddc804d5fb0bb2362f658e7a3706fb003 11-Dec-2009 Jaikumar Ganesh <jaikumar@google.com> am f6e32e72: Merge change Icced7a09 into eclair

Merge commit 'f6e32e72a902d9a309410bc5306a539ea850159f' into eclair-mr2

* commit 'f6e32e72a902d9a309410bc5306a539ea850159f':
Maintain a list of all Bluetooth docks.
6e9c443460e40e9d663c117ba836585335e7c2c1 09-Dec-2009 Jaikumar Ganesh <jaikumar@google.com> Maintain a list of all Bluetooth docks.

With this change, isBluetoothDock API can be used anytime and is not in tied
to dock state. The Dock State is a sticky intent so users
can query for the dock state.

Dr No: Eastham
Bug: 2133530
/frameworks/base/core/java/android/server/BluetoothService.java
11a2853e0196905e25a2dc5c227320688e04e950 03-Dec-2009 Jaikumar Ganesh <jaikumar@google.com> am 8c411fb1: Merge change I79420b02 into eclair

Merge commit '8c411fb13923d1fa28fcd98452bf3d17b8b1a338' into eclair-mr2

* commit '8c411fb13923d1fa28fcd98452bf3d17b8b1a338':
Add support for Car Dock.
3fbf7b62bb48b10316353087d09cc3720af00642 03-Dec-2009 Jaikumar Ganesh <jaikumar@google.com> Add support for Car Dock.

Dr No: Eastham
Bug: 2133530
/frameworks/base/core/java/android/server/BluetoothService.java
5f24a24004a9694db757dd6e666d0061dfbdf2b0 30-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> Register Handsfree profile before headset profile. DO NOT MERGE.

There is a delay between registering the two profiles,
and handsfree profile is a superset of the headset profile.
So some devices do an SDP and get the headset profile record
before we have registered the handsfree profile.

a) We can reject all incoming connections till all profiles are
registered, but then this would mean we connect later in some cases.
Registering profiles in this order seems fine to me.

Note: There is a also the need to fix forking sdptool to register
profiles, which would obliviate the need to wait 500 msecs between
profile registrations.

Bug: 2293792
Dr No: Eastham
/frameworks/base/core/java/android/server/BluetoothService.java
77b4ad0e496941a28382eb938a05831f1f8d2d4a 30-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> Register Handsfree profile before headset profile.

There is a delay between registering the two profiles,
and handsfree profile is a superset of the headset profile.
So some devices do an SDP and get the headset profile record
before we have registered the handsfree profile.

a) We can reject all incoming connections till all profiles are
registered, but then this would mean we connect later in some cases.
Registering profiles in this order seems fine to me.

Note: There is a also the need to fix forking sdptool to register
profiles, which would obliviate the need to wait 500 msecs between
profile registrations.
/frameworks/base/core/java/android/server/BluetoothService.java
8631e55425b2ab81eb74396e6834c6f7a4549804 23-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> am ad431ad8: Merge change Ia3acc2ee into eclair

Merge commit 'ad431ad8631d8b19b04193ff1f89a955a7643c60' into eclair-mr2

* commit 'ad431ad8631d8b19b04193ff1f89a955a7643c60':
Fix pairings lost on reboot.
b148bc844e5eddb07bef2fd1b4b754716decb43e 20-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> Fix pairings lost on reboot.

Bug:2277376
Dr No:Eastham
/frameworks/base/core/java/android/server/BluetoothService.java
4fea2919abeba149376fed98a14e3ffc8464eadf 18-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> am 660282dc: Merge change I706fe6b0 into eclair

Merge commit '660282dc3e81784224945be0787a9e2d4276de8c' into eclair-mr2

* commit '660282dc3e81784224945be0787a9e2d4276de8c':
Check if Bluetooth is enabled before making any calls down.
8c9dd7d8b99e1b064fc064a3c6737eaf179eae68 17-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> Check if Bluetooth is enabled before making any calls down.

This was causing problems when apps were making calls, without
turning on BT first.

Bug: 2234918
Dr No: Eastham
/frameworks/base/core/java/android/server/BluetoothService.java
48956ad3fa4bfcd6d386c61872363c9e8990fa39 12-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> am 3c58d279: Merge change I738ed802 into eclair

Merge commit '3c58d279abed1da56b0ece74ded5854c509a42a4' into eclair-mr2

* commit '3c58d279abed1da56b0ece74ded5854c509a42a4':
Fix BMW and Audi auto pairing lists.
738ed80262aa26128924c51f59ffd49e1163eb8d 12-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> Fix BMW and Audi auto pairing lists.

Bug no:2256558
Dr No:Eastham
/frameworks/base/core/java/android/server/BluetoothService.java
4e552b606cc9fc3e6cac210b3894974709531ec1 12-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> am 013b0e53: Merge change I143ea844 into eclair

Merge commit '013b0e531a4318b3e78c9bd0e077d3632fce2280' into eclair-mr2

* commit '013b0e531a4318b3e78c9bd0e077d3632fce2280':
Add BMW and Audi to Auto Pairing black list.
9b26f3fae406fa84cf4ddbc00674ccfe7ae2feb5 12-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> Add BMW and Audi to Auto Pairing black list.

Bug: 2256558
Dr No: Eastham
/frameworks/base/core/java/android/server/BluetoothService.java
f53f86a743a91b4383e480dcf44a8e7b16ca7fa0 06-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> am 8de4e0ad: Merge change I21d0dca3 into eclair

Merge commit '8de4e0ad8ff39d9a397cd80de5155d4c09ef98fd' into eclair-mr2

* commit '8de4e0ad8ff39d9a397cd80de5155d4c09ef98fd':
Add BMW kits made by Motorola PCS to autoblack list for Bluetooth.
21d0dca33e0c16c7de5c42bbcdf5a98ec67ead5d 05-Nov-2009 Jaikumar Ganesh <jaikumar@google.com> Add BMW kits made by Motorola PCS to autoblack list for Bluetooth.

This may force some Motorola headsets to thow up the Pairing Request.

Bug: 2210365
Dr No: Eastham
/frameworks/base/core/java/android/server/BluetoothService.java
77df9d6e0ca56a34c66a1e30e9696085ddbd9038 12-Oct-2009 Nick Pelly <npelly@google.com> am d301c904: Merge change I305c181c into eclair

Merge commit 'd301c90446644f63cda9b9263f83332676065bb4' into eclair-mr2

* commit 'd301c90446644f63cda9b9263f83332676065bb4':
Delay 500ms between each registering each SDP record using sdptool.
bc1fc05c1b3e8c407fa07b25777bf577d5285f49 12-Oct-2009 Nick Pelly <npelly@google.com> Delay 500ms between each registering each SDP record using sdptool.

This is to workaround an issue where SDP records will fail to register using
sdptool. When we run SystemService.start() it forks sdptool, so if we do this
four times in a row these forked processes can run in parallel, and one or
more of them fails. There is probably some thready safety issue in sdptool
or Bluez that makes it unsafe to run sdptool in parallel.

As a workaround, delay 500ms between each run of sdptool to register SDP
records when starting Bluetooth.

Before this fix it was easy to reproduce problems with service record
registration. If you turn BT off/on multiple times you can see that sometimes
one or more service records are missing. Repro rate is about 20% in my tests.
Result is that remote devices cannot connect to the missing service.

After this fix I am unable to reproduce any missing SDP records, after 30+
cycles of BT on/off. Motorola BT team also ran stress tests overnight with this
fix and were unable to reproduce the missing SDP records.

This is a low risk fix. It does delay some records from being registered
by an additional 1.5 seconds (on top of the 3 second delay we already had),
so if you try and very quickly connect a BT service after turning BT on it
won't work the first time.

Do not merge. (I will use a less hacky fix for MR2/Master)

Change-Id: I305c181c3194e8ce25e3825320cc2e1ef6d3d3cc
Bug: 2180800
DrNo: eastham
Joke: Why can't you play cards in the jungle? Because there's too many cheetas!
/frameworks/base/core/java/android/server/BluetoothService.java
db7ae10d6b8e86ff5311512de45afa65a1b0a738 09-Oct-2009 Nick Pelly <npelly@google.com> Remove STOPSHIP BT logging.

Do not merge.

Change-Id: I428bc0fc67030f24112f2e9c865824dfaea4897d
DrNo: eastham
Bug: 2089423
Joke: Why was Tigger looking in the toilet? To find Pooh
/frameworks/base/core/java/android/server/BluetoothService.java
e6ee3be1c254404dad842298f6f56c11cc6c7ac8 08-Oct-2009 Nick Pelly <npelly@google.com> BT API security audit: fix a couple of permission mistakes.

Make functions that are meant to be BLUETOOTH_ADMIN really
BLUETOOTH_ADMIN.

Add some missing javadoc for permissions.

The only functional change here is the BLUETOOTH->BLUETOOTH_ADMIN
changes. This is super safe because every system app that uses BT
has both permissions.

Change-Id: Iddc61f9fd5d81fe0171358665a0fa52f2fa02871
DrNo: eastham
Joke: How do you catch a rabbit? Hide behind a tree and make carrott noises.
/frameworks/base/core/java/android/server/BluetoothService.java
e5d93b7ed983f98855555d560faf060836f1a52f 08-Oct-2009 Jaikumar Ganesh <jaikumar@google.com> Set the Bond State to NONE when we receive a Agent Cancel.

Sometimes during OPP, we can get stuck in Pairing state when the remote
end, cancels the Pairing process - we will just get onAgentCancel
and thus not set the Pairing state properly.

DrNo: Eastham
Bug:2174874
/frameworks/base/core/java/android/server/BluetoothService.java
f242b7b931898856bcbcb7ec36cacf43098ba544 08-Oct-2009 Nick Pelly <npelly@google.com> Introduce BluetoothAdapter.getDefaultAdapter().

This is the main entry point to the Bluetooth APIs, and returns the default
local Bluetooth adapter.

It replaces context.getSystemService(Context.BLUETOOTH_SERVICE). This was
never in a public SDK release.

DrNo: eastham
Bug: 2158765
Joke: Why can't you play cards in the jungle? Because there's too many cheetas!
Change-Id: Ieed8be009ee5aba621cb69090ee8c8a9c19c840d
/frameworks/base/core/java/android/server/BluetoothService.java
16fb88a673c41b93c5d57ccb28c2697e7d87701a 07-Oct-2009 Nick Pelly <npelly@google.com> Encourage developers to connect RFCOMM by UUID instead of Channel.

Hide createRfcommSocket(int channel)
Add createRfcommSocketWithServiceRecord(UUID uuid)

Rename listenUsingRfcomm(String,UUID) -> listenUsingRfcommWithServiceRecord(..)

Now we have a complete API for developers to make peer-peer RFCOMM connections
with hard-coding the limited (30) RFCOMM channels, instead using SDP lookup
of an UUID.

This commit addresses two serious bugs:
- Do not throw IOException on accepting an incoming RFCOMM connection with
BluetoothSocket. This was a regression from commit 24bb9b8af4ff6915
- Workaround failure of bluez to update SDP cache when channel changes by
trying to use the same RFCOMM channel on the server every time, instead
of picking server channels randomly. This is a pretty ugly workaround,
and we are still trying to fix the caching issue - but with this
workaround we are at least shippable and apps will work at least until
they start colliding on the 30 RFCOMM channels.

DrNo: eastham
Bug: 2158900
Joke: What did the digital watch say to his mom? "Look mom no hands."
Change-Id: Ia4879943b83afac06b6f1a3f2391cf1628afce7d
/frameworks/base/core/java/android/server/BluetoothService.java
24bb9b8af4ff691538fe9e517e8156016b0da6cd 03-Oct-2009 Nick Pelly <npelly@google.com> Provide an API for apps to use a dynamic RFCOMM channel and SDP record.

Hide listenUsingRfcommOn(int channel)
Add listenUsingRfcomm(String name, ParcelUuid uuid)

The new API automatically finds a free RFCOMM channel and registers an SDP
record with the given uuid and name. The SDP record is automatically
removed when the socket is closed, or if the application dies.

Apps are prevented from registering SDP records with the uuid of system
Bluetooth profiles, such as A2DP, HFP and OPP.

Apps are prevented from removing SDP records that they did not create. This is
tracked by pid.

TODO: Provide an API for the connecting app to look up an SDP record.

Bug: 2158900
DrNo: eastham
Joke: "What did the dog say to the tree? bark."
Change-Id: Ia92f51c34615a7270a403255ad2b8faa98c4a3f5
/frameworks/base/core/java/android/server/BluetoothService.java
55929a958bf0e482c8e4d7df3dd75957f1e9d871 30-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Query from Bluez if name is not present in cache.

Change-Id: I78c4e64a52b8290053dedfb1326df8d4c20f8a09
/frameworks/base/core/java/android/server/BluetoothService.java
aef439e6f825c0cb99a2ac08c8207f48b7a9fe10 28-Sep-2009 Nick Pelly <npelly@google.com> Move android.bluetooth.ParcelUuid to android.os.ParcelUuid

Change-Id: I564429d5c5b6a5372b6ff26a53b0d7e518b53631
/frameworks/base/core/java/android/server/BluetoothService.java
12835478ee687a493d1b5882e67b6725bd539c26 26-Sep-2009 Nick Pelly <npelly@google.com> Handle expiration of discovery mode in system server.

Change-Id: I58fd199b40ffdf8168a5489be8eedb5d25d56722
/frameworks/base/core/java/android/server/BluetoothService.java
18b1e79a123b979d25bfa5d0b0ee5d0382dbd64b 24-Sep-2009 Nick Pelly <npelly@google.com> Bluetooth API: Do not allow apps to programmatically make BT discoverable.

Instead add ACTION_REQUEST_DISCOVERABLE for the system to show a dialog to
adjust discoverable mode.

Also remove createBond(), removeBond() and cancelBondProcess(). The Settings
App already handles these automatically when connections require bonding.

Change-Id: I216154cd1b6de410de64ba91b07d7263ac03e8df
/frameworks/base/core/java/android/server/BluetoothService.java
2d3b98d868cda30535505b2a2fba47aa1c9c052b 22-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Send the address of the device with the UUID intent.

Change-Id: I6357d482550e9e02edf221add318ecd9cfadcb66
/frameworks/base/core/java/android/server/BluetoothService.java
10eac971b3a6e5f34a420dd68ebfa796553ad2b9 21-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Cache the remote device's service channel.

Bluez Device implementation is such that when a device
is unpaired, we removes the device and hence there is no
way to interact with it unless you pair again. Remote service
channel call is used to get the rfcomm channel number which
will be used in profiles like OPP which don't require pairing.

Change-Id: I868a6cdfdb1b7d3591dd8b66cd0320f41a9c1b92
/frameworks/base/core/java/android/server/BluetoothService.java
6179965e85ec17b836084a4a3d7963d8a7a1e1cc 21-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Send the UUID intent even if apps have not requested for it.

This will help apps listening to this intent to update icons etc
if the remote uuid changes. For example, the settings app used to
refresh the icons when the class bits change. It can do it now
when the remote ends uuids changes too.

Change-Id: Ib9af45780e83118d8877b0ef16f5b39b87fb4bef
/frameworks/base/core/java/android/server/BluetoothService.java
2092361d586a20190c9137fb3cc9434cdc9ec99f 20-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Maintain pending outgoing bonding address.

This helps us to distinguish between incoming and outgoing Bonding requests.

Change-Id: I69e6a269b7dd6aad60e6f5711cad812291a7d313
/frameworks/base/core/java/android/server/BluetoothService.java
1caa6d111eff6814760ec156b14adc29aa3aae6c 18-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Add new API for fetching UUIDs using SDP.

Add new API which clients can use to force an SDP query.
The result is broadcast using an intent having the UUIDs.
The intent is broadcast after a timeout, in case of an error.
This timeout is greater than the page timeout.

Change-Id: I61e6db4c05b34c42f679a66987e37e2063a793b6
/frameworks/base/core/java/android/server/BluetoothService.java
dd0463aef18d251c741bfc9dc7a2787443ef36f1 16-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Change handling of remoteUuids.

Use the ParcelUuid instead of UUID

Change-Id:Ie05d65a62e8a4df8182a4c737d46c14142bfec43
/frameworks/base/core/java/android/server/BluetoothService.java
adbaef234e1bd7bbec561fb6291bae394a412ce8 15-Sep-2009 Nick Pelly <npelly@google.com> Add Panasonic KX-TH112 to blacklist.

Change-Id: I12475aff4046796132beb2554cd067bcec712973
/frameworks/base/core/java/android/server/BluetoothService.java
482d54bb0cd9e00fd929185c31fea3ad845d97bc 14-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Add black listing of car kits by name.
/frameworks/base/core/java/android/server/BluetoothService.java
32d8571f509c392dca732c243e9b2138c15daecf 11-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Changes for BT 2.1

1) Handle incoming 2.1 pairing requests
2) Modify displaying error messages on bond failures.
3) Add delay while accepting incoming pairing for certain 2.1 devices.
When MITM is on, the link key request might come more than once.
Auto accept with a delay.
4) Handle DisplayPasskey callback for pairing a 2.1 keyboard with
a 2.1 device
/frameworks/base/core/java/android/server/BluetoothService.java
005b228cdfb369d9b3b325884c0337ba5968bf8c 10-Sep-2009 Nick Pelly <npelly@google.com> API_CHANGE: Cleanup, javadoc and unhide more Bluetooth API.

This is a large batch, and covers:

-- Bluetooth Device Discovery --
BluetoothAdapter.ACTION_DISCOVERY_STARTED
BluetoothAdapter.ACTION_DISCOVERY_FINISHED
BluetoothAdapter.startDiscovery()
BluetoothAdapter.cancelDiscovery()
BluetoothAdapter.isDiscovering()

-- Bluetooth bonding (pairing) --
BluetoothAdapter.getBondedDevices()
BluetoothDevice.ACTION_BOND_STATE_CHANGED
BluetoothDevice.EXTRA_BOND_STATE
BluetoothDevice.EXTRA_PREVIOUS_BOND_STATE
BluetoothDevice.BOND_NONE
BluetoothDevice.BOND_BONDING
BluetoothDevice.BOND_BONDED
BluetoothDevice.getBondState()
BluetoothDevice.createBond()
BluetoothDevice.cancelBondProcess()
BluetoothDevice.removeBond()

-- BluetoothClass --
BluetoothDevice.ACTION_CLASS_CHANGED
BluetoothDevice.EXTRA_CLASS
BluetoothDevice.getBluetoothClass()
BluetoothClass.Service.*
BluetoothClass.Device.Major.*
BluetoothClass.Device.*
BluetoothClass.getDeviceClass()
BluetoothClass.getMajorDeviceClass()
BluetoothClass.hasService()

-- Misc BluetoothDevice --
BluetoothDevice.ACTION_ACL_CONNECTED
BluetoothDevice.ACTION_ACL_DISCONNECTED_REQUESTED
BluetoothDevice.ACTION_ACL_DISCONNECTED
BluetoothDevice.ACTION_DISCOVERED
BluetoothDevice.ACTION_NAME_CHANGED
BluetoothDevice.EXTRA_DEVICE
BluetoothDevice.EXTRA_NAME
BluetoothDevice.EXTRA_RSSI

-- Misc BluetoothAdapter --
BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED
BluetoothAdapter.EXTRA_LOCAL_NAME
BluetoothAdapter.checkBluetoothAddress()

I deprecated BluetoothIntent and moved each intent into the class it relates
to.

Change-Id: I877b1280428ab46278b2bc25668bb44cda22dc36
/frameworks/base/core/java/android/server/BluetoothService.java
b24e11baac589fe16426f2d243b460ab84991c7b 09-Sep-2009 Nick Pelly <npelly@google.com> API_CHANGE

Deprecate BluetoothError.java.

I spent a lot of time experimenting with a class BluetoothError to enumerate
the many error codes returned by the Bluetooth API. But at the end of the day
they were never used. The vast majority of method calls only really need a
true/false error value, and often not even that.

Methods which do need more detailed error enumeration (for example, bonding
failures) can have there own enumerated error codes. But there is no need
for a common set of error codes.

Also change the IPC failed warnings in BluetoothA2dp to Log.e. These indicate
a very serious error.

Introduce BluetoothAdapter.ERROR and BluetoothDevice.ERROR as helper sentinel
values.
/frameworks/base/core/java/android/server/BluetoothService.java
de893f550301a60274e87aa8168225e7a7a42184 08-Sep-2009 Nick Pelly <npelly@google.com> API_CHANGE

Another round of Bluetooth API clean up, javadoc'ing and unhide'ing.

-- Symbols for getting/setting bluetooth state --
BluetoothAdapter.ACTION_STATE_CHANGED
BluetoothAdapter.EXTRA_STATE
BluetoothAdapter.EXTRA_PREVIOUS_STATE
BluetoothAdapter.STATE_OFF
BluetoothAdapter.STATE_TURNING_ON
BluetoothAdapter.STATE_ON
BluetoothAdapter.STATE_TURNING_OFF
BluetoothAdapter.isEnabled()
BluetoothAdapter.getState()
BluetoothAdapter.enable()
BluetoothAdapter.disable()

-- Symbols for getting/setting scan mode --
BluetoothAdapter.ACTION_SCAN_MODE_CHANGED
BluetoothAdapter.EXTRA_SCAN_MODE
BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE
BluetoothAdapter.SCAN_MODE_NONE
BluetoothAdapter.SCAN_MODE_CONNECTABLE
BluetoothAdapter.SCAN_MODE_DISCOVERABLE
BluetoothAdapter.getScanMode()
BluetoothAdapter.setScanMode()

-- Symbols for getting address/names --
BluetoothAdapter.getAddress()
BluetoothAdapter.getName()
BluetoothAdapter.setName()
/frameworks/base/core/java/android/server/BluetoothService.java
9519ce75f15ba287a641166c1b7ed10f2aa73f74 09-Sep-2009 Jaikumar Ganesh <jaikumar@google.com> Query for all properties if a property change is received and cache is empty.
/frameworks/base/core/java/android/server/BluetoothService.java
efa1dd716da3372cc74a201d11de5e0ef1a9fe9a 31-Aug-2009 Lixin Yue <L.X.YUE@motorola.com> Add Bluetooth Device trust
/frameworks/base/core/java/android/server/BluetoothService.java
efa33676caf5b7a637fad73cd22c9ef23b68cdc2 28-Aug-2009 Jaikumar Ganesh <jaikumar@google.com> Fix property being cleared when DeviceFound signal is received.
/frameworks/base/core/java/android/server/BluetoothService.java
b015e193b7304230749bbf1e0676628b8a38de77 26-Aug-2009 Nick Pelly <npelly@google.com> Add trailing "\n" to debug output.
/frameworks/base/core/java/android/server/BluetoothService.java
1eada0d3d655d6396bf862da954d254856a1bc03 26-Aug-2009 Nick Pelly <npelly@google.com> Add uuids to adb shell dumpsys bluetooth
/frameworks/base/core/java/android/server/BluetoothService.java
397d8f4f4829a45f4fe7a672cc395466bbc0f442 21-Aug-2009 Jaikumar Ganesh <jaikumar@google.com> Set BondState to Canceled when user cancels pairing.
/frameworks/base/core/java/android/server/BluetoothService.java
bd022f423a33f0794bb53e5b0720da2d67e4631c 15-Aug-2009 Nick Pelly <npelly@google.com> Bluetooth: API change.

Split BluetoothDevice into BluetoothDevice and BluetoothAdapter.

BluetoothAdapter: Represents the local BT adapter. Operations on the local
adapter (start a scan, etc).
BluetoothDevice: Represents a remote BT device. Operations on remote devices
(pair, connect, etc).

IBluetoothDevice.aidl -> Bluetooth.aidl
BluetoothDeviceService.java -> BluetoothDeviceService.java

TODO:
Javadoc
/frameworks/base/core/java/android/server/BluetoothService.java