Commit Graph

99 Commits

Author SHA1 Message Date
Jaikumar Ganesh
987c415c83 am f5d2eec4: am 11b97c50: Merge change I551ed729 into eclair
Merge commit 'f5d2eec4fd530ac09ce1f8d2e51ea29b5cd12a38'

* commit 'f5d2eec4fd530ac09ce1f8d2e51ea29b5cd12a38':
  Use UNDEFINED priorities when unpaired.
2009-12-21 14:22:47 -08:00
Android (Google) Code Review
11b97c50e6 Merge change I551ed729 into eclair
* changes:
  Use UNDEFINED priorities when unpaired.
2009-12-21 14:17:15 -08:00
Scott Main
3a9b03425b am a2bca747: am a25032a0: Merge change Ic31c0f62 into eclair
Merge commit 'a2bca7477d803541c5a48cc7624e2b6c305c5970'

* commit 'a2bca7477d803541c5a48cc7624e2b6c305c5970':
  docs: update the Bluetooth guide with links to the sample
2009-12-18 17:18:54 -08:00
Scott Main
1362bbcf76 docs: update the Bluetooth guide with links to the sample
app, scrub the sibling files, and revise the Bluetooth package
summary to point to the BT dev guide.
2009-12-16 18:48:02 -08:00
Jaikumar Ganesh
551ed72940 Use UNDEFINED priorities when unpaired.
For the docks, we can set if a device is preferred or not
before pairing process. This was getting overridden when we pair.
This problem doesn't happen with normal headsets.

Dr No: Eastham
Bug: 2318290
2009-12-11 12:00:31 -08:00
Scott Main
7b0463a949 am ed2a70d6: docs: add the Bluetooth developer guide, and make some revisions to the BT javadocs
Merge commit 'ed2a70d6495b3f1928e36ad2b00ee4d33b2c0379' into eclair-mr2

* commit 'ed2a70d6495b3f1928e36ad2b00ee4d33b2c0379':
  docs: add the Bluetooth developer guide,
2009-12-10 17:42:55 -08:00
Scott Main
ed2a70d649 docs: add the Bluetooth developer guide,
and make some revisions to the BT javadocs
2009-12-09 17:59:38 -08:00
Jaikumar Ganesh
b08170ad7e am ae88e2d1: Merge change I38227501 into eclair
Merge commit 'ae88e2d130a4d69bdf7ddc58f6ae512ea63087ff' into eclair-mr2

* commit 'ae88e2d130a4d69bdf7ddc58f6ae512ea63087ff':
  Add API to get Active Sinks.
2009-12-07 15:53:02 -08:00
Jaikumar Ganesh
b16c4f7dd9 Add API to get Active Sinks.
Allow incoming connections only when there are no active sinks.

Dr No: Eastham
Bug: 2133530
2009-12-07 15:20:31 -08:00
Jaikumar Ganesh
11a2853e01 am 8c411fb1: Merge change I79420b02 into eclair
Merge commit '8c411fb13923d1fa28fcd98452bf3d17b8b1a338' into eclair-mr2

* commit '8c411fb13923d1fa28fcd98452bf3d17b8b1a338':
  Add support for Car Dock.
2009-12-03 12:01:38 -08:00
Jaikumar Ganesh
3fbf7b62bb Add support for Car Dock.
Dr No: Eastham
Bug: 2133530
2009-12-03 11:35:37 -08:00
Jaikumar Ganesh
721361f1a7 Add a new priority for Auto Connection of A2DP. DO NOT MERGE.
1. PRIORITY_OFF is when user unchecks A2DP connection profile box.
2. By default, when you bond, it will be PRIORITY_ON.
3. When the profile gets connected, the priority gets set to
   PRIORITY_AUTO_CONNECT. This means that we will connect
   automatically to this profile.
4. When the user disconnects, we downgrade the priority to PRIORITY_ON,
   which means we won't reconnect automatically.

a) We need to make a similar change to Handsfree profile.
b) We need to rework the profile management design and code which
  will fix the 6 second timer that we have for A2DP reconnection.

Add AUTO_CONNECT priority for Headset profile.
Also, don't set priority to ON while disconnecting.
This logic has been pushed up to the Settings app.

Dr No: Eastham
Bug: 2133530
2009-12-02 15:39:59 -08:00
Jaikumar Ganesh
249345ee5a Add AUTO_CONNECT priority for Headset profile.
Also, don't set priority to ON while disconnecting.
This logic has been pushed up to the Settings app.
2009-11-30 14:06:59 -08:00
Jaikumar Ganesh
aafff8a069 Add a new priority for Auto Connection of A2DP.
1. PRIORITY_OFF is when user unchecks A2DP connection profile box.
2. By default, when you bond, it will be PRIORITY_ON.
3. When the profile gets connected, the priority gets set to
   PRIORITY_AUTO_CONNECT. This means that we will connect
   automatically to this profile.
4. When the user disconnects, we downgrade the priority to PRIORITY_ON,
   which means we won't reconnect automatically.

a) We need to make a similar change to Handsfree profile.
b) We need to rework the profile management design and code which
  will fix the 6 second timer that we have for A2DP reconnection.
2009-11-24 15:05:37 -08:00
Scott Main
cb5966426a am e1611399: am 6d95fc0a: docs for ESR: add docs to bluetooth explainin that discovery should be cancelled before connecting to a device
Merge commit 'e16113998bb10f39ee1384bfc497aceeeb193440' into eclair-mr2

* commit 'e16113998bb10f39ee1384bfc497aceeeb193440':
  docs for ESR: add docs to bluetooth explainin that discovery should
2009-11-20 10:00:28 -08:00
Scott Main
e16113998b am 6d95fc0a: docs for ESR: add docs to bluetooth explainin that discovery should be cancelled before connecting to a device
Merge commit '6d95fc0a2ca910212a43c4547c0ef000659b72dc' into eclair

* commit '6d95fc0a2ca910212a43c4547c0ef000659b72dc':
  docs for ESR: add docs to bluetooth explainin that discovery should
2009-11-20 09:54:22 -08:00
Scott Main
6d95fc0a2c docs for ESR: add docs to bluetooth explainin that discovery should
be cancelled before connecting to a device

bug: 2160782,2198463
2009-11-19 17:06:54 -08:00
Scott Main
b262f50af9 am 13ce56bd: am 88427cff: Merge change Ibcfb7d10 into eclair-sdk
Merge commit '13ce56bdbc4872c0b12caff501e063f5a75073db' into eclair-mr2

* commit '13ce56bdbc4872c0b12caff501e063f5a75073db':
  docs: add more documentation for the bluetooth apis.
2009-11-10 09:40:48 -08:00
Scott Main
13ce56bdbc am 88427cff: Merge change Ibcfb7d10 into eclair-sdk
Merge commit '88427cff609e668185010af2244500be5823595e' into eclair

* commit '88427cff609e668185010af2244500be5823595e':
  docs: add more documentation for the bluetooth apis.
2009-11-10 09:26:24 -08:00
Scott Main
9fab0aef19 docs: add more documentation for the bluetooth apis.
more descriptions for some of the classes and a new
overview and pseudo-code example for using BT APIs
in the package summary.
2009-11-09 18:09:12 -08:00
Michael Chan
811f655366 am 8d51f710: Merge change Icdd2864e into eclair
Merge commit '8d51f7101d2427953dbff9b4b8f8c9fdc0dc4a91' into eclair-mr2

* commit '8d51f7101d2427953dbff9b4b8f8c9fdc0dc4a91':
  b/2234854 Fixed Bluetooth API return codes for requesting permission to enable bluetooth
2009-11-06 13:33:06 -08:00
Michael Chan
cdd2864eb3 b/2234854 Fixed Bluetooth API return codes for requesting permission to enable bluetooth 2009-11-05 18:32:08 -08:00
Jaikumar Ganesh
bf2efbc064 am 3cf254d2: Merge change I4b3db907 into eclair
Merge commit '3cf254d2ba303da3354ed65fd7f3136e87a56b9f' into eclair-mr2

* commit '3cf254d2ba303da3354ed65fd7f3136e87a56b9f':
  Revert the channge where channels were not selected randomly.
2009-10-30 10:31:25 -07:00
Jaikumar Ganesh
4b3db907f0 Revert the channge where channels were not selected randomly.
The Bluez SDP bug has been fixed.
Reverting parts of the commit: 16fb88a673

Bug: 2173752
Dr No: Eastham
2009-10-30 09:37:25 -07:00
Nick Pelly
db7ae10d6b 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
2009-10-09 01:35:11 +02:00
Nick Pelly
e6ee3be1c2 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.
2009-10-09 01:35:10 +02:00
Jaikumar Ganesh
e5d93b7ed9 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
2009-10-08 04:25:45 -07:00
Nick Pelly
f242b7b931 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
2009-10-08 00:27:17 +02:00
Nick Pelly
16fb88a673 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 24bb9b8af4
- 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
2009-10-07 23:25:24 +02:00
Nick Pelly
52cde7279b Fix docs builds. 2009-10-06 16:10:02 +02:00
Nick Pelly
24bb9b8af4 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
2009-10-06 05:57:50 -07:00
Android (Google) Code Review
5a463a693c Merge change Ic2a16d4f into eclair
* changes:
  b/2148252 Fix emulator
2009-10-01 10:52:01 -04:00
Michael Chan
081f58abb7 b/2148252 Fix emulator
Change-Id: Ic2a16d4fac2a2a12a209c83ad2049829255cb31f
2009-09-30 18:14:08 -07:00
Jaikumar Ganesh
54172d92af Try to reconnect twice when the rfcomm error code is Connection Refused.
This happens when the the remote headset is in a bad state or is
not accepting connections. Try twice before giving up.

Change-Id: I55e15bad6b72904b8e4ccbca89e17e9bd3ddb61e
2009-09-30 17:46:17 -07:00
Nick Pelly
e766eae938 Fix broken build.
Should be bool not int. Forgot to roll in local changes to last commit.

Change-Id: I28bad88238e5b715a5033b0d5a897d924ef8b538
2009-09-30 12:06:28 -07:00
Zhu Lan
f9bbe1e71a Bluetooth A2DP suspend/resume functionality
Change-Id: I8366852fa9b6ff9dacf18db00ea1c2be0c00ff34
2009-09-29 20:50:02 -07:00
Nick Pelly
aef439e6f8 Move android.bluetooth.ParcelUuid to android.os.ParcelUuid
Change-Id: I564429d5c5b6a5372b6ff26a53b0d7e518b53631
2009-09-28 13:06:22 -07:00
Nick Pelly
1acdcc1a50 Add an API to request a system activity to turn on Bluetooth.
Change-Id: I2fca33ad27017ea4e2ecba37854b749682d07672
2009-09-28 11:04:00 -07:00
Nick Pelly
12835478ee Handle expiration of discovery mode in system server.
Change-Id: I58fd199b40ffdf8168a5489be8eedb5d25d56722
2009-09-25 15:00:29 -07:00
Brad Fitzpatrick
3219ab4de2 Fix typo in Bluetooth docs. 2009-09-25 20:28:02 +04:00
Nick Pelly
18b1e79a12 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
2009-09-24 19:34:54 -07:00
Jaikumar Ganesh
10eac971b3 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
2009-09-21 15:58:08 -07:00
Android (Google) Code Review
163be61ce5 Merge change 25412 into eclair
* changes:
  Make ParcelUuid helper functions consistent.
2009-09-21 15:37:21 -04:00
Android (Google) Code Review
ac810e53b7 Merge change 25779 into eclair
* changes:
  Add new API for fetching UUIDs using SDP.
2009-09-19 14:30:37 -04:00
Jaikumar Ganesh
1caa6d111e 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
2009-09-19 11:29:24 -07:00
Nick Pelly
55e66f1b73 Reject lowercase characters in checkBluetoothAddress().
This keeps consistency with Bluez which uses upper case string address. It's
important to keep the case the same so that .equals() in BluetoothService.java
work.

Change-Id: I6404ca137d0aec3cc2e6e7cb79763d5305a03547
2009-09-18 11:37:06 -07:00
Nick Pelly
37e0828cf9 Add one line of logging when SCO SOCKET connect starts.
This is to help collect information from Moto QA about delays connecting BT
audio.

Change-Id: I790c65f5b64c85aaffc0e68ebe8b6202f476b39f
http://b/2129464
2009-09-18 10:17:41 -07:00
Nick Pelly
074c11c164 Do not @hide Parcelable implementations in BluetoothClass and BluetoothDevice.
Change-Id: I92389c53a9b99c9507f78898329ff87b631c7aa3
2009-09-17 08:25:30 -07:00
Jaikumar Ganesh
dca2f0fec3 Make ParcelUuid helper functions consistent.
Treat zero length arrays and null arrays to be same.

Change-Id: I8c6c28e5dc3da1f31f6f6abfc747db4c2975a90b
2009-09-16 17:50:52 -07:00
Jaikumar Ganesh
dd0463aef1 Change handling of remoteUuids.
Use the ParcelUuid instead of UUID

Change-Id:Ie05d65a62e8a4df8182a4c737d46c14142bfec43
2009-09-16 17:05:15 -07:00