BluetoothGattCallback.java revision 9908112fd085d8b0d91e0562d32eebd1884f09a5
19908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta/*
29908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Copyright (C) 2013 The Android Open Source Project
39908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
49908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Licensed under the Apache License, Version 2.0 (the "License");
59908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * you may not use this file except in compliance with the License.
69908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * You may obtain a copy of the License at
79908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
89908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *      http://www.apache.org/licenses/LICENSE-2.0
99908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
109908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Unless required by applicable law or agreed to in writing, software
119908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * distributed under the License is distributed on an "AS IS" BASIS,
129908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * See the License for the specific language governing permissions and
149908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * limitations under the License.
159908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta */
169908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
179908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battapackage android.bluetooth;
189908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
199908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battaimport android.bluetooth.BluetoothDevice;
209908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
219908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battaimport android.util.Log;
229908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
239908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta/**
249908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * This abstract class is used to implement {@link BluetoothGatt} callbacks.
259908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * @hide
269908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta */
279908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battapublic abstract class BluetoothGattCallback {
289908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
299908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback to inform change in registration state of the  application.
309908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
319908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status Returns {@link BluetoothGatt#GATT_SUCCESS} if the application
329908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *               was successfully registered.
339908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
349908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onAppRegistered(int status) {
359908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
369908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
379908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
389908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback reporting an LE device found during a device scan initiated
399908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * by the {@link BluetoothGatt#startScan} function.
409908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
419908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param device Identifies the remote device
429908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param rssi The RSSI value for the remote device as reported by the
439908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *             Bluetooth hardware. 0 if no RSSI value is available.
449908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param scanRecord The content of the advertisement record offered by
459908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                   the remote device.
469908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
479908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onScanResult(BluetoothDevice device, int rssi, byte[] scanRecord) {
489908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
499908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
509908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
519908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback indicating when a remote device has been connected or disconnected.
529908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
539908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param device Remote device that has been connected or disconnected.
549908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status Status of the connect or disconnect operation.
559908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param newState Returns the new connection state. Can be one of
569908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                  {@link BluetoothProfile#STATE_DISCONNECTED} or
579908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                  {@link BluetoothProfile#STATE_CONNECTED}
589908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
599908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onConnectionStateChange(BluetoothDevice device, int status,
609908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                                        int newState) {
619908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
629908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
639908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
649908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback invoked when the list of remote services, characteristics and
659908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * descriptors for the remote device have been updated.
669908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
679908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param device Remote device
689908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status {@link BluetoothGatt#GATT_SUCCESS} if the remote device
699908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *               has been explored successfully.
709908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
719908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onServicesDiscovered(BluetoothDevice device, int status) {
729908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
739908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
749908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
759908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback reporting the result of a characteristic read operation.
769908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
779908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param characteristic Characteristic that was read from the associated
789908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                       remote device.
799908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status {@link BluetoothGatt#GATT_SUCCESS} if the read operation
809908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *               was completed successfully.
819908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
829908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onCharacteristicRead(BluetoothGattCharacteristic characteristic,
839908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                                     int status) {
849908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
859908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
869908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
879908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback indicating the result of a characteristic write operation.
889908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
899908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * <p>If this callback is invoked while a reliable write transaction is
909908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * in progress, the value of the characteristic represents the value
919908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * reported by the remote device. An application should compare this
929908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * value to the desired value to be written. If the values don't match,
939908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * the application must abort the reliable write transaction.
949908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
959908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param characteristic Characteristic that was written to the associated
969908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                       remote device.
979908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status The result of the write operation
989908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
999908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onCharacteristicWrite(BluetoothGattCharacteristic characteristic,
1009908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                               int status) {
1019908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1029908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1039908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1049908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback triggered as a result of a remote characteristic notification.
1059908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1069908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param characteristic Characteristic that has been updated as a result
1079908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                       of a remote notification event.
1089908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1099908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onCharacteristicChanged(BluetoothGattCharacteristic characteristic) {
1109908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1119908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1129908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1139908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback reporting the result of a descriptor read operation.
1149908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1159908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param descriptor Descriptor that was read from the associated
1169908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                       remote device.
1179908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status {@link BluetoothGatt#GATT_SUCCESS} if the read operation
1189908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *               was completed successfully
1199908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1209908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onDescriptorRead(BluetoothGattDescriptor descriptor,
1219908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                                     int status) {
1229908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1239908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1249908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1259908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback indicating the result of a descriptor write operation.
1269908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1279908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param descriptor Descriptor that was writte to the associated
1289908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *                       remote device.
1299908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status The result of the write operation
1309908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1319908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onDescriptorWrite(BluetoothGattDescriptor descriptor,
1329908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                               int status) {
1339908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1349908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1359908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1369908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback invoked when a reliable write transaction has been completed.
1379908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1389908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param device Remote device
1399908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status {@link BluetoothGatt#GATT_SUCCESS} if the reliable write
1409908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *               transaction was executed successfully
1419908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1429908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onReliableWriteCompleted(BluetoothDevice device, int status) {
1439908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1449908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1459908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1469908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Callback reporting the RSSI for a remote device connection.
1479908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1489908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * This callback is triggered in response to the
1499908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * {@link BluetoothGatt#readRemoteRssi} function.
1509908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1519908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param device Identifies the remote device
1529908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param rssi The RSSI value for the remote device
1539908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param status 0 if the RSSI was read successfully
1549908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1559908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public void onReadRemoteRssi(BluetoothDevice device, int rssi, int status) {
1569908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1579908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta}
158