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 acceptIncomingConnect(in BluetoothDevice device);
44a0c680393f2dd03a937c598b2cb9abf98a58152cMatthew Xie    boolean rejectIncomingConnect(in BluetoothDevice device);
4530d181690e48b26cdfae3b144d23f1e16c75da37Jaikumar Ganesh    int getAudioState(in BluetoothDevice device);
46f2e6b13620f3ebbb94166834abaaabcc08a403b7Jaikumar Ganesh
473e8c82edb1feafc796aa52efafedc13f794c4dcdMatthew Xie    boolean isAudioOn();
483e8c82edb1feafc796aa52efafedc13f794c4dcdMatthew Xie    boolean connectAudio();
493e8c82edb1feafc796aa52efafedc13f794c4dcdMatthew Xie    boolean disconnectAudio();
50dde68c64fd8e97a592633ec4c09283ec928e5697Jaikumar Ganesh    boolean startScoUsingVirtualVoiceCall(in BluetoothDevice device);
51dde68c64fd8e97a592633ec4c09283ec928e5697Jaikumar Ganesh    boolean stopScoUsingVirtualVoiceCall(in BluetoothDevice device);
523e8c82edb1feafc796aa52efafedc13f794c4dcdMatthew Xie    void phoneStateChanged(int numActive, int numHeld, int callState, String number, int type);
533e8c82edb1feafc796aa52efafedc13f794c4dcdMatthew Xie    void roamChanged(boolean roam);
543e8c82edb1feafc796aa52efafedc13f794c4dcdMatthew Xie    void clccResponse(int index, int direction, int status, int mode, boolean mpty,
553e8c82edb1feafc796aa52efafedc13f794c4dcdMatthew Xie                      String number, int type);
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57