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 1916fb88a673c41b93c5d57ccb28c2697e7d87701aNick Pellyimport android.bluetooth.IBluetoothCallback; 20ef2cb7c93a99096799d415e721dda46d1bf7a005Jaikumar Ganeshimport android.bluetooth.IBluetoothStateChangeCallback; 21fb658c72a3a76dac334c39070d1501a2575c1069Jaikumar Ganeshimport android.bluetooth.IBluetoothHealthCallback; 22545e6708adda6859932b55fd824794b1401f5318Jaikumar Ganeshimport android.bluetooth.BluetoothDevice; 232ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganeshimport android.bluetooth.BluetoothHealthAppConfiguration; 24aef439e6f825c0cb99a2ac08c8207f48b7a9fe10Nick Pellyimport android.os.ParcelUuid; 252ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganeshimport android.os.ParcelFileDescriptor; 26dd0463aef18d251c741bfc9dc7a2787443ef36f1Jaikumar Ganesh 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System private API for talking with the Bluetooth service. 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 32bd022f423a33f0794bb53e5b0720da2d67e4631cNick Pellyinterface IBluetooth 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isEnabled(); 35105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project int getBluetoothState(); 36105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project boolean enable(); 37105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project boolean disable(boolean persistSetting); 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getAddress(); 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getName(); 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setName(in String name); 4258b93c36409c7fb91a644605f004b6d247d9b540Jaikumar Ganesh ParcelUuid[] getUuids(); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getScanMode(); 4512835478ee687a493d1b5882e67b6725bd539c26Nick Pelly boolean setScanMode(int mode, int duration); 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getDiscoverableTimeout(); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setDiscoverableTimeout(int timeout); 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 50d5ac1ae36b4e096eb97984334f86d0c68abea2f7Jaikumar Ganesh boolean startDiscovery(); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean cancelDiscovery(); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isDiscovering(); 53cc5494c9996f809e36539b24e8b6b67683383d29Jaikumar Ganesh byte[] readOutOfBandData(); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 55c53cab20b225ba69057441ecb06db6478ab8ff9bJaikumar Ganesh int getAdapterConnectionState(); 56cb1d354c1e9b458a0426cd08520d938012e32b34Jaikumar Ganesh int getProfileConnectionState(int profile); 57ef2cb7c93a99096799d415e721dda46d1bf7a005Jaikumar Ganesh boolean changeApplicationBluetoothState(boolean on, 58ef2cb7c93a99096799d415e721dda46d1bf7a005Jaikumar Ganesh in IBluetoothStateChangeCallback callback, in 59ef2cb7c93a99096799d415e721dda46d1bf7a005Jaikumar Ganesh IBinder b); 60c53cab20b225ba69057441ecb06db6478ab8ff9bJaikumar Ganesh 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean createBond(in String address); 62cc5494c9996f809e36539b24e8b6b67683383d29Jaikumar Ganesh boolean createBondOutOfBand(in String address, in byte[] hash, in byte[] randomizer); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean cancelBondProcess(in String address); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean removeBond(in String address); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String[] listBonds(); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getBondState(in String address); 67cc5494c9996f809e36539b24e8b6b67683383d29Jaikumar Ganesh boolean setDeviceOutOfBandData(in String address, in byte[] hash, in byte[] randomizer); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getRemoteName(in String address); 70269e81a563cfe080d7f241d0d46411d3c946c111Matthew Xie String getRemoteAlias(in String address); 71269e81a563cfe080d7f241d0d46411d3c946c111Matthew Xie boolean setRemoteAlias(in String address, in String name); 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getRemoteClass(in String address); 73dd0463aef18d251c741bfc9dc7a2787443ef36f1Jaikumar Ganesh ParcelUuid[] getRemoteUuids(in String address); 7416fb88a673c41b93c5d57ccb28c2697e7d87701aNick Pelly boolean fetchRemoteUuids(in String address, in ParcelUuid uuid, in IBluetoothCallback callback); 7516fb88a673c41b93c5d57ccb28c2697e7d87701aNick Pelly int getRemoteServiceChannel(in String address, in ParcelUuid uuid); 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setPin(in String address, in byte[] pin); 78b0eca41de0bb6747d8648b134912782e45e4cbefJaikumar Ganesh boolean setPasskey(in String address, int passkey); 79b0eca41de0bb6747d8648b134912782e45e4cbefJaikumar Ganesh boolean setPairingConfirmation(in String address, boolean confirm); 80cc5494c9996f809e36539b24e8b6b67683383d29Jaikumar Ganesh boolean setRemoteOutOfBandData(in String addres); 81b0eca41de0bb6747d8648b134912782e45e4cbefJaikumar Ganesh boolean cancelPairingUserInput(in String address); 82b0eca41de0bb6747d8648b134912782e45e4cbefJaikumar Ganesh 83efa1dd716da3372cc74a201d11de5e0ef1a9fe9aLixin Yue boolean setTrust(in String address, in boolean value); 84efa1dd716da3372cc74a201d11de5e0ef1a9fe9aLixin Yue boolean getTrustState(in String address); 853fbf7b62bb48b10316353087d09cc3720af00642Jaikumar Ganesh boolean isBluetoothDock(in String address); 8624bb9b8af4ff691538fe9e517e8156016b0da6cdNick Pelly 8724bb9b8af4ff691538fe9e517e8156016b0da6cdNick Pelly int addRfcommServiceRecord(in String serviceName, in ParcelUuid uuid, int channel, IBinder b); 8824bb9b8af4ff691538fe9e517e8156016b0da6cdNick Pelly void removeServiceRecord(int handle); 89bbd86750570ff75e428b3810dc2e65db558c14b2Jaikumar Ganesh boolean allowIncomingProfileConnect(in BluetoothDevice device, boolean value); 909b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh 919b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh boolean connectHeadset(String address); 929b637e5985f9a86f39d70335c0390ade3716592aJaikumar Ganesh boolean disconnectHeadset(String address); 9398f06da8ed2851a768358de1979838ad1bb6d187Matthew Xie boolean notifyIncomingConnection(String address, boolean rejected); 94545e6708adda6859932b55fd824794b1401f5318Jaikumar Ganesh 95545e6708adda6859932b55fd824794b1401f5318Jaikumar Ganesh // HID profile APIs 96545e6708adda6859932b55fd824794b1401f5318Jaikumar Ganesh boolean connectInputDevice(in BluetoothDevice device); 97545e6708adda6859932b55fd824794b1401f5318Jaikumar Ganesh boolean disconnectInputDevice(in BluetoothDevice device); 985a1e4cf83f5be1b5d79e2643fa791aa269b6a4bcJaikumar Ganesh List<BluetoothDevice> getConnectedInputDevices(); 994ab0e7746fe74a9e4d75d374f73b7af87420b2f6Jaikumar Ganesh List<BluetoothDevice> getInputDevicesMatchingConnectionStates(in int[] states); 1004ab0e7746fe74a9e4d75d374f73b7af87420b2f6Jaikumar Ganesh int getInputDeviceConnectionState(in BluetoothDevice device); 101545e6708adda6859932b55fd824794b1401f5318Jaikumar Ganesh boolean setInputDevicePriority(in BluetoothDevice device, int priority); 102545e6708adda6859932b55fd824794b1401f5318Jaikumar Ganesh int getInputDevicePriority(in BluetoothDevice device); 1036fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang 1046fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang boolean isTetheringOn(); 105b70765cc27a174d1d4a0bab7062733ebd3eae354Jaikumar Ganesh void setBluetoothTethering(boolean value); 10674ef1199459629c5dd9f272f8cd706d82cdfeeb1Jaikumar Ganesh int getPanDeviceConnectionState(in BluetoothDevice device); 1075a1e4cf83f5be1b5d79e2643fa791aa269b6a4bcJaikumar Ganesh List<BluetoothDevice> getConnectedPanDevices(); 10874ef1199459629c5dd9f272f8cd706d82cdfeeb1Jaikumar Ganesh List<BluetoothDevice> getPanDevicesMatchingConnectionStates(in int[] states); 1096fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang boolean connectPanDevice(in BluetoothDevice device); 1106fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang boolean disconnectPanDevice(in BluetoothDevice device); 111a46f2fb152355fe591f9dddeb41f01fef5ccad1dJaikumar Ganesh 1122ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh // HDP profile APIs 113fb658c72a3a76dac334c39070d1501a2575c1069Jaikumar Ganesh boolean registerAppConfiguration(in BluetoothHealthAppConfiguration config, 114fb658c72a3a76dac334c39070d1501a2575c1069Jaikumar Ganesh in IBluetoothHealthCallback callback); 1152ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh boolean unregisterAppConfiguration(in BluetoothHealthAppConfiguration config); 1162ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh boolean connectChannelToSource(in BluetoothDevice device, in BluetoothHealthAppConfiguration config); 1172ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh boolean connectChannelToSink(in BluetoothDevice device, in BluetoothHealthAppConfiguration config, 1182ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh int channelType); 119eb9d34630f74d0260690287f2df57c0cd3d7ba1dJaikumar Ganesh boolean disconnectChannel(in BluetoothDevice device, in BluetoothHealthAppConfiguration config, int id); 1202ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh ParcelFileDescriptor getMainChannelFd(in BluetoothDevice device, in BluetoothHealthAppConfiguration config); 1212ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh List<BluetoothDevice> getConnectedHealthDevices(); 1222ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh List<BluetoothDevice> getHealthDevicesMatchingConnectionStates(in int[] states); 1232ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh int getHealthDeviceConnectionState(in BluetoothDevice device); 1242ea1e85dcb57d17f5782dbafa1d25eb51c630e4bJaikumar Ganesh 125cb1d354c1e9b458a0426cd08520d938012e32b34Jaikumar Ganesh void sendConnectionStateChange(in BluetoothDevice device, int profile, int state, int prevState); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 127