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 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-6.0-Bluetooth-HCI-Reqs.pdf">Android 6.0 Bluetooth HCI Requirements</a>.
That document initially was provided as 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 with 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 application 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 call into and that you must implement to have your Bluetooth hardware
  	function correctly. The header file for the Bluetooth HAL 
    is <code>hardware/libhardware/include/hardware/bluetooth.h</code>. Additionally, please review all of the
  <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>system/bt</code>. The stack implements the generic Bluetooth HAL and
   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 <code>/hardware/libhardware/include/hardware/bluetooth.h</code>. 
Thus, the <code>bluetooth.h</code> file contains the basic interface for the Bluetooth stack, and you must implement its functions.</p>

<p>Profile-specific files are located in the same directory. For details, see the <a
href="{@docRoot}devices/halref/dir_6b11132f1a015b03f2670f21bef1d871.html">HAL File Reference</a>.</p>

<p>The following is a <strong>partial</strong> list of the profile-related 
files. For the <strong>complete set</strong>, see the <code>/hardware/libhardware/include/hardware/</code> directory:</p>

<ul>
  <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 Bluetooth stack in the <code>system/bt</code> directory,
	which implements the default HAL and also extra features and customizations.</p>


<h2 id="customizing">Customizing the Native Bluetooth Stack</h2>
<p>If you are using the default Bluetooth stack, but want to make a few customizations, you can
	do the following:</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 default stack (<code>system/bt</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>/hardware/broadcom/libbt</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>
