1/* 2 * Copyright (C) 2008, The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.bluetooth; 18 19import android.bluetooth.IBluetoothCallback; 20import android.bluetooth.IBluetoothStateChangeCallback; 21import android.bluetooth.BluetoothActivityEnergyInfo; 22import android.bluetooth.BluetoothDevice; 23import android.bluetooth.OobData; 24import android.os.ParcelUuid; 25import android.os.ParcelFileDescriptor; 26import android.os.ResultReceiver; 27 28/** 29 * System private API for talking with the Bluetooth service. 30 * 31 * {@hide} 32 */ 33interface IBluetooth 34{ 35 boolean isEnabled(); 36 int getState(); 37 boolean enable(); 38 boolean enableNoAutoConnect(); 39 boolean disable(); 40 41 String getAddress(); 42 ParcelUuid[] getUuids(); 43 boolean setName(in String name); 44 String getName(); 45 46 int getScanMode(); 47 boolean setScanMode(int mode, int duration); 48 49 int getDiscoverableTimeout(); 50 boolean setDiscoverableTimeout(int timeout); 51 52 boolean startDiscovery(); 53 boolean cancelDiscovery(); 54 boolean isDiscovering(); 55 56 int getAdapterConnectionState(); 57 int getProfileConnectionState(int profile); 58 59 BluetoothDevice[] getBondedDevices(); 60 boolean createBond(in BluetoothDevice device, in int transport); 61 boolean createBondOutOfBand(in BluetoothDevice device, in int transport, in OobData oobData); 62 boolean cancelBondProcess(in BluetoothDevice device); 63 boolean removeBond(in BluetoothDevice device); 64 int getBondState(in BluetoothDevice device); 65 int getConnectionState(in BluetoothDevice device); 66 67 String getRemoteName(in BluetoothDevice device); 68 int getRemoteType(in BluetoothDevice device); 69 String getRemoteAlias(in BluetoothDevice device); 70 boolean setRemoteAlias(in BluetoothDevice device, in String name); 71 int getRemoteClass(in BluetoothDevice device); 72 ParcelUuid[] getRemoteUuids(in BluetoothDevice device); 73 boolean fetchRemoteUuids(in BluetoothDevice device); 74 boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid); 75 76 boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode); 77 boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] 78 passkey); 79 boolean setPairingConfirmation(in BluetoothDevice device, boolean accept); 80 81 int getPhonebookAccessPermission(in BluetoothDevice device); 82 boolean setPhonebookAccessPermission(in BluetoothDevice device, int value); 83 int getMessageAccessPermission(in BluetoothDevice device); 84 boolean setMessageAccessPermission(in BluetoothDevice device, int value); 85 int getSimAccessPermission(in BluetoothDevice device); 86 boolean setSimAccessPermission(in BluetoothDevice device, int value); 87 88 void sendConnectionStateChange(in BluetoothDevice device, int profile, int state, int prevState); 89 90 void registerCallback(in IBluetoothCallback callback); 91 void unregisterCallback(in IBluetoothCallback callback); 92 93 // For Socket 94 ParcelFileDescriptor connectSocket(in BluetoothDevice device, int type, in ParcelUuid uuid, int port, int flag); 95 ParcelFileDescriptor createSocketChannel(int type, in String serviceName, in ParcelUuid uuid, int port, int flag); 96 97 boolean configHciSnoopLog(boolean enable); 98 boolean factoryReset(); 99 100 boolean isMultiAdvertisementSupported(); 101 boolean isPeripheralModeSupported(); 102 boolean isOffloadedFilteringSupported(); 103 boolean isOffloadedScanBatchingSupported(); 104 boolean isActivityAndEnergyReportingSupported(); 105 BluetoothActivityEnergyInfo reportActivityInfo(); 106 107 /** 108 * Requests the controller activity info asynchronously. 109 * The implementor is expected to reply with the 110 * {@link android.bluetooth.BluetoothActivityEnergyInfo} object placed into the Bundle with the 111 * key {@link android.os.BatteryStats#RESULT_RECEIVER_CONTROLLER_KEY}. 112 * The result code is ignored. 113 */ 114 oneway void requestActivityInfo(in ResultReceiver result); 115 116 void onLeServiceUp(); 117 void onBrEdrDown(); 118} 119