19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.bluetooth;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19bd022f423a33f0794bb53e5b0720da2d67e4631cNick Pellyimport android.bluetooth.BluetoothDevice;
20bd022f423a33f0794bb53e5b0720da2d67e4631cNick Pelly
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
2296a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh * API for Bluetooth Headset service
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IBluetoothHeadset {
2796a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    // Public API
2896a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    boolean connect(in BluetoothDevice device);
2996a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    boolean disconnect(in BluetoothDevice device);
3003cd78cf5e51c3adb78d2e3d314838dcf3e36b26Jaikumar Ganesh    List<BluetoothDevice> getConnectedDevices();
3103cd78cf5e51c3adb78d2e3d314838dcf3e36b26Jaikumar Ganesh    List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states);
3296a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    int getConnectionState(in BluetoothDevice device);
33bd022f423a33f0794bb53e5b0720da2d67e4631cNick Pelly    boolean setPriority(in BluetoothDevice device, int priority);
34bd022f423a33f0794bb53e5b0720da2d67e4631cNick Pelly    int getPriority(in BluetoothDevice device);
3596a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    boolean startVoiceRecognition(in BluetoothDevice device);
3696a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    boolean stopVoiceRecognition(in BluetoothDevice device);
3796a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    boolean isAudioConnected(in BluetoothDevice device);
389b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh
3996a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    // APIs that can be made public in future
4096a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    int getBatteryUsageHint(in BluetoothDevice device);
4196a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh
4296a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    // Internal functions, not be made public
439b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh    boolean createIncomingConnect(in BluetoothDevice device);
449b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh    boolean acceptIncomingConnect(in BluetoothDevice device);
45a0c680393f2dd03a937c598b2cb9abf98a58152cMatthew Xie    boolean rejectIncomingConnect(in BluetoothDevice device);
469b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh    boolean cancelConnectThread();
479b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh    boolean connectHeadsetInternal(in BluetoothDevice device);
489b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh    boolean disconnectHeadsetInternal(in BluetoothDevice device);
4996a79830ea1ae3ab3d6d3cce2bd1397fcd40ea0eJaikumar Ganesh    boolean setAudioState(in BluetoothDevice device, int state);
5030d181690e48b26cdfae3b144d23f1e16c75da37Jaikumar Ganesh    int getAudioState(in BluetoothDevice device);
51f2e6b13620f3ebbb94166834abaaabcc08a403b7Jaikumar Ganesh
52dde68c64fd8e97a592633ec4c09283ec928e5697Jaikumar Ganesh    boolean startScoUsingVirtualVoiceCall(in BluetoothDevice device);
53dde68c64fd8e97a592633ec4c09283ec928e5697Jaikumar Ganesh    boolean stopScoUsingVirtualVoiceCall(in BluetoothDevice device);
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
55