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