tree e3f845fa32e2bb48f5ae5b076042cf785dcb4d8b
parent 2e85ea37c1ba495d3f0fd702f0a3920f3faf2848
author Casper Bonde <c.bonde@samsung.com> 1428564050 +0200
committer Casper Bonde <c.bonde@samsung.com> 1428564050 +0200

Obex over L2CAP + SDP search API

Each profile had its own implementation of ObexTransport.
These implementations were implemented very similar, and
could easily be merged into a common implementation.

Additionally it will make it easier to adopt the transport
to support L2CAP.

The SDP functionality is implemented in a way that is scalable,
hence adding new record types is easy.
Intents are currently used to distribute the SDP search results,
as we have observed that the new client side profiles have been
located outside the Bluetooth package.
We strongly recommend to keep all bluetooth profiles within the
Bluetooth package, to acoid the need for exposing all bluetooth
interfaces through the Android framework. For instance this new
SDP create API is internal to Bluetooth, hence cannot be used by
the external profiles - hence they cannot use OBEX over L2CAP.

The SDP search currently supports:
 - MAP both sides
 - OPP server (only the server needs an SDP record)
 - PBAP server (only the server needs SDP record)

The SDP create record currently supports:
 - MAP both sides
 - OPP server
 - PBAP server
The new l2cap sockets introduces a new wrapper class for a rfcomm
and an l2cap socket.
The wrapper design:
 - Creates two accept threads running while bluetooth is
   turned on.
 - When a connection is accepted the owner is asked wether or not
   to accept the connection if rejected, the connection will be
   rejected at obex level, else it will be accepted and the state
   is changed to busy.
 - Any further connections will be rejected at Obex level, until
   the state is changed back to idle.

Notes tor executing the test cases:
Test OBEX using local pipes(no BT) or two bluetooth enabled
devices.

Test SDP using two Bluetooth enabled devices

Start server testcase first on one device, then start
the matching client test on the other device.

You cannot run all tests in one go, as they need to run
on multiple devices.

Edit the test sequesce to add/remove/modify the sequence
of OBEX operations to perform.

Use the new SDP record create interface.

Change-Id: I3941793f9843abf4afa5ffbee40d1d01c118b29b
Signed-off-by: Casper Bonde <c.bonde@samsung.com>
