/* * Copyright (C) 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. */ /** * Binder IPC API for talking with the Bluetooth service and perform high-level * operations on the adapter. */ interface IBluetooth { /** * Returns true if the Bluetooth adapter is powered and ready to use. This * is equivalent to "getState() == ADAPTER_STATE_ON". */ boolean isEnabled(); /** * Returns the current Bluetooth adapter state. The return value can be one of * the following: * * - ADAPTER_STATE_OFF = 10 * - ADAPTER_STATE_TURNING_ON = 11 * - ADAPTER_STATE_ON = 12 * - ADAPTER_STATE_TURNING_OFF = 13 */ int getState(); /** * Turns on the Bluetooth radio. This function initiates the procedure to * bring the adapter state from ADAPTER_STATE_OFF to ADAPTER_STATE_ON. Returns * false, if the state is not ADAPTER_STATE_OFF or if there is an error while * initiating the operation. On success, the adapter state will be * asynchronously updated to ADAPTER_STATE_TURNING_ON and eventually to * ADAPTER_STATE_ON. Callers can monitor the status of this call by observing * the IBluetoothCallback.onBluetoothStateChange callback. */ boolean enable(); /** * Turns off the Bluetooth radio. This function initiates the procedure to * bring the adapter state from ADAPTER_STATE_ON to ADAPTER_STATE_OFF. Returns * false, if the state is not ADAPTER_STATE_ON or if there is an error while * initiating the operation. On success, the adapter state will be * asynchronously updated to ADAPTER_STATE_TURNING_OFF and eventually to * ADAPTER_STATE_OFF. Callers can monitor the status of this call by observing * the IBluetoothCallback.onBluetoothStateChange callback. */ boolean disable(); /** * Returns the identity Bluetooth Device Address (BD_ADDR) assigned to the * underlying Bluetooth controller. Returns a string of the form * "XX:XX:XX:XX:XX:XX", where each "X" is a hexadecimal digit. Returns * "00:00:00:00:00:00" if the address is not known, which is usually the case * before the adapter is enabled for the first time. */ String getAddress(); /** * Sets the name assigned to the Bluetooth adapter. This is the name that will * be seen by remote devices during discovery. Returns false if the operation * fails. */ boolean setName(in String name); /** * Returns the current name assigned to the Bluetooth adapter. This is the * name that is seen by remote devices during discovery. If the controller has * not been initialized yet (before the first time it gets enabled), this will * return "not-initialized". */ String getName(); /** * Registers a callback receiver which can be used to listen to state updates * from the adapter. The Bluetooth daemon will automatically register this if * the owning process dies. */ void registerCallback(in IBluetoothCallback callback); /** * Unregisters a previously registered callback. */ void unregisterCallback(in IBluetoothCallback callback); /** * Returns true, if the multi-advertisement feature is supported. Returns * false, if this device can only advertise a single instance. */ boolean isMultiAdvertisementSupported(); /** * Returns a binder that can be used to interact with Low-Energy features. */ IBluetoothLowEnergy getLowEnergyInterface(); /** * Returns a binder that can be used to interact with GATT client-role * features. */ IBluetoothGattClient getGattClientInterface(); /** * Returns a binder that can be used to interact with GATT server-role * features. */ IBluetoothGattServer getGattServerInterface(); }