summaryrefslogtreecommitdiff
path: root/core/java/android/bluetooth/BluetoothGroupCallback.java
blob: a818cc77fd3a6a46d3874499ae8b720a92d28465 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/******************************************************************************
 *  Copyright (c) 2020, The Linux Foundation. All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are
 *  met:
 *      * Redistributions of source code must retain the above copyright
 *        notice, this list of conditions and the following disclaimer.
 *      * Redistributions in binary form must reproduce the above
 *        copyright notice, this list of conditions and the following
 *        disclaimer in the documentation and/or other materials provided
 *        with the distribution.
 *      * Neither the name of The Linux Foundation nor the names of its
 *        contributors may be used to endorse or promote products derived
 *        from this software without specific prior written permission.
 *
 *  THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
 *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
 *  ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
 *  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 *  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 *  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 *  IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *****************************************************************************/

package android.bluetooth;

import java.util.UUID;
import java.util.List;
/**
 * This abstract class is used to implement {@link BluetoothDeviceGroup} callbacks.
 * @hide
 */
public abstract class BluetoothGroupCallback {
    /**
     * This Callback gives connection state changed with specific group device.
     *
     * @param state Connection state of the {@link BluetoothProfile} group device.
     * @param device Remote device for which connection state has changed.
     */
    public void onConnectionStateChanged (int state, BluetoothDevice device) {
    }

    /**
     * This callback is given when application is registered for Group operation
     * callbacks. This callback is given after {@link BluetoothDeviceGroup#registerGroupClientApp}
     * is called.
     *
     * @param status Status of the group client app registration.
     * @param appId Identifier of the application for group operations.
     */
    public void onGroupClientAppRegistered(int status, int appId) {
    }

    /**
     * This callback is triggered when a new device group has been identified
     * from one of the connected device. After this callback is received, application
     * can choose to trigger discovery of device group using API
     * {@link BluetoothDeviceGroup#startGroupDiscovery}
     *
     * @param groupId   Identifier of the Device Group.
     * @param device  Remote device with which Device Group is found.
     * @param uuid    UUID of the primary Service for this Device Group Service.
     */
    public void onNewGroupFound (int groupId,  BluetoothDevice device, UUID uuid) {
    }

    /**
     * This Callback is triggered when device group discovery is either started/stopped.
     *
     * @param groupId   Identifier of the device group.
     * @param status    Device Group Discovery status.
	 *                  {@link BluetoothDeviceGroup#GROUP_DISCOVERY_STARTED}
     *                  or  {@link BluetoothDeviceGroup#GROUP_DISCOVERY_STOPPED}.
     * @param reason    Reason for change in the discovery status.
     */
    public void onGroupDiscoveryStatusChanged (int groupId, int status, int reason) {
    }

    /**
     * This callback is triggered when new group device has been found after group
     * discovery has been started. This callback is given on discovery of every
     * new group device.
     *
     * @param groupId  Identifier of the device group.
     * @param device  {@link BluetoothDevice} instance of discovered group device.
     */
    public void onGroupDeviceFound (int groupId, BluetoothDevice device) {
    }

    /**
     * This callback is triggered after exclusive access status of the group
     * or subgroup has been changed after the request from application.
     *
     * @param groupId   Identifier of the device group.
     * @param value     Changed value of the exclusive access.
     * @param status    Status associated with the exclusive access.
     * @param devices   List of devices for which exclusive access has been changed.
     */
    public void onExclusiveAccessChanged (int groupId, int value, int status,
            List<BluetoothDevice> devices) {
    }

    /**
     * This callback gives access status of requested group/subgroup once
     * it is fetched.
     *
     * @param groupId       Identifier of the device group.
     * @param accessStatus  Value of the Exclusive Access.
     */
    public void onExclusiveAccessStatusFetched (int groupId, int accessStatus) {
    }

    /**
     * This callback is given to application when exclusive access is available
     * for the device of a given group for which was denied earlier.
     * <p> Exclusive Access is considered available when group device sends notification
     * for access changed to BluetoothDeviceGroup#ACCESS_RELEASED. This callback is
     * given to the application which has requested the access earlier and the request
     * had failed as one of the group device had DENIED the access.
     *
     * @param groupId  Identifier of the device group.
     * @param device  {@link BluetoothDevice} which has exclusive access available.
     */
    public void onExclusiveAccessAvailable (int groupId, BluetoothDevice device) {
    }

}