page.title=Bluetooth
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<img style="float: right; margin: 0px 15px 15px 15px;" src="images/ape_fwk_hal_bluetooth.png" alt="Android Bluetooth HAL icon"/>

<p>Android provides a default Bluetooth stack, BlueDroid, that is divided into two layers: The Bluetooth Embedded System (BTE), which implements the core Bluetooth functionality and the Bluetooth Application Layer (BTA), which communicates with Android framework applications.</p>

<p>To fully leverage the <a href="http://developer.android.com/about/versions/android-5.0.html#BluetoothBroadcasting">Bluetooth Low Energy APIs</a> added in Android 5.0, you should implement the <a href="Android-5.0-Bluetooth-HCI-Reqs.pdf">Android 5.0 Bluetooth HCI Requirements</a>.</p>

<h2 id="architecture">Architecture</h2>
<p>A Bluetooth system service communicates with the Bluetooth stack through JNI and with applications through Binder IPC. The system service provides developers access to various Bluetooth profiles. The following diagram shows the general structure of the Bluetooth stack:
</p>

<img src="images/ape_fwk_bluetooth.png" alt="Android Bluetooth architecture" id="figure1" />
<p class="img-caption">
  <strong>Figure 1.</strong> Bluetooth architecture
</p>

<dl>
  <dt>Application framework</dt>
  <dd>At the application framework level is the app's code, which utilizes the <a 
  href="http://developer.android.com/reference/android/bluetooth/package-summary.html">android.bluetooth</a>
  APIs to interact with the Bluetooth hardware. Internally, this code calls the Bluetooth process through
  the Binder IPC mechanism.</dd>
  
  <dt>Bluetooth system service</dt>
  <dd>The Bluetooth system service, located in <code>packages/apps/Bluetooth</code>, is packaged as an Android
  	app and implements the Bluetooth service and profiles at the Android framework layer. This app
  	calls into the HAL layer via JNI.</dd>

  <dt>JNI</dt>
  <dd>The JNI code associated with <a 
  href="http://developer.android.com/reference/android/bluetooth/package-summary.html">android.bluetooth</a> is located in
  <code>packages/apps/Bluetooth/jni</code>. The JNI code calls into the HAL layer and receives
  callbacks from the HAL when certain Bluetooth operations occur, such as when devices are
  discovered.</dd>

  <dt>HAL</dt>
  <dd>The hardware abstraction layer defines the standard interface that the <a 
  href="http://developer.android.com/reference/android/bluetooth/package-summary.html">android.bluetooth</a> APIs
  	and Bluetooth process calls into and that you must implement to have your Bluetooth hardware
  	function correctly. The header files for the Bluetooth HAL is located
  in the <code>hardware/libhardware/include/hardware/bluetooth.h</code> and
  <code>hardware/libhardware/include/hardware/bt_*.h</code> files.
  </dd>

    <dt>Bluetooth stack</dt>
  <dd>The default Bluetooth stack is provided for you and is located in
  <code>external/bluetooth/bluedroid</code>. The stack implements the generic Bluetooth HAL as well
  as customizes it with extensions and configuration changes.
  </dd>

    <dt>Vendor extensions</dt>
  <dd>To add custom extensions and an HCI layer for tracing, you can create a libbt-vendor module
  	and specify these components.
  </dd>

  </dl>


<h2 id="implementing">Implementing the HAL</h2>
<p>The Bluetooth HAL is located in the <code>hardware/libhardware/include/hardware/</code> directory. Please see that directory for the <strong>complete set</strong> of files, which include but are not limited to the following:
</p>

<ul>
  <li><code>bluetooth.h</code>: Includes the interface definition for the Bluetooth hardware on the device.</li>
  <li><code>bt_av.h</code>: Includes the interface definition for the A2DP profile.</li>
  <li><code>bt_gatt.h</code>, <code>bt_gatt_client.h</code>, and <code>bt_gatt_server.h</code>: These include the interface definition for the GATT profile.</li>
  <li><code>bt_hf.h</code>: Includes the interface definition for the HFP profile.</li>
  <li><code>bt_hh.h</code>: Includes the interface definition for the HID host profile.</li>
  <li><code>bt_hl.h</code>: Includes the interface definition for the HDP profile.</li>
  <li><code>bt_mce.h</code>: Includes the interface definition for the MAP profile.</li>
  <li><code>bt_pan.h</code>: Includes the interface definition for the PAN profile.</li>
  <li><code>bt_rc.h</code>: Includes the interface definition for the AVRCP profile.</li>
  <li><code>bt_sock.h</code>: Includes the interface definition for RFCOMM sockets.</li>
</ul>

<p>Keep in mind that your Bluetooth implementation is not constrained to the features
	and profiles exposed in the HAL. You can find the default implementation located
	in the BlueDroid Bluetooth stack in the <code>external/bluetooth/bluedroid</code> directory,
	which implements the default HAL and also extra features and customizations.</p>
</p>

<h2>Customizing the BlueDroid Stack</h2>

<p>If you are using the default BlueDroid stack, but want to make a few customizations, you can
	do the following things:</p>

<ul>
	<li>Custom Bluetooth profiles - If you want to add Bluetooth profiles that do not have
		HAL interfaces provided by Android, you must supply an SDK add-on download to make the profile available to app developers,
		make the APIs available in the Bluetooth system	process app (<code>packages/apps/Bluetooth</code>), and add them
		to the BlueDroid stack (<code>external/bluetooth/bluedroid</code>).</li>
	<li>Custom vendor extensions and configuration changes - You can add things such as extra AT commands or device-specific configuration changes
		by creating a <code>libbt-vendor</code> module. See the <code>vendor/broadcom/libbt-vendor</code> directory
		for an example.</li>
	<li>Host Controller Interface (HCI) - You can provide your own HCI by creating a <code>libbt-hci</code> module, which
		is mainly used for debug tracing. See the <code>external/bluetooth/hci</code> directory for an example.</li>
</ul>
