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 long getDiscoveryEndMillis(); 56 57 int getAdapterConnectionState(); 58 int getProfileConnectionState(int profile); 59 60 BluetoothDevice[] getBondedDevices(); 61 boolean createBond(in BluetoothDevice device, in int transport); 62 boolean createBondOutOfBand(in BluetoothDevice device, in int transport, in OobData oobData); 63 boolean cancelBondProcess(in BluetoothDevice device); 64 boolean removeBond(in BluetoothDevice device); 65 int getBondState(in BluetoothDevice device); 66 boolean isBondingInitiatedLocally(in BluetoothDevice device); 67 long getSupportedProfiles(); 68 int getConnectionState(in BluetoothDevice device); 69 70 String getRemoteName(in BluetoothDevice device); 71 int getRemoteType(in BluetoothDevice device); 72 String getRemoteAlias(in BluetoothDevice device); 73 boolean setRemoteAlias(in BluetoothDevice device, in String name); 74 int getRemoteClass(in BluetoothDevice device); 75 ParcelUuid[] getRemoteUuids(in BluetoothDevice device); 76 boolean fetchRemoteUuids(in BluetoothDevice device); 77 boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid); 78 79 boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode); 80 boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] 81 passkey); 82 boolean setPairingConfirmation(in BluetoothDevice device, boolean accept); 83 84 int getPhonebookAccessPermission(in BluetoothDevice device); 85 boolean setPhonebookAccessPermission(in BluetoothDevice device, int value); 86 int getMessageAccessPermission(in BluetoothDevice device); 87 boolean setMessageAccessPermission(in BluetoothDevice device, int value); 88 int getSimAccessPermission(in BluetoothDevice device); 89 boolean setSimAccessPermission(in BluetoothDevice device, int value); 90 91 void sendConnectionStateChange(in BluetoothDevice device, int profile, int state, int prevState); 92 93 void registerCallback(in IBluetoothCallback callback); 94 void unregisterCallback(in IBluetoothCallback callback); 95 96 // For Socket 97 ParcelFileDescriptor connectSocket(in BluetoothDevice device, int type, in ParcelUuid uuid, int port, int flag); 98 ParcelFileDescriptor createSocketChannel(int type, in String serviceName, in ParcelUuid uuid, int port, int flag); 99 100 boolean factoryReset(); 101 102 boolean isMultiAdvertisementSupported(); 103 boolean isOffloadedFilteringSupported(); 104 boolean isOffloadedScanBatchingSupported(); 105 boolean isActivityAndEnergyReportingSupported(); 106 boolean isLe2MPhySupported(); 107 boolean isLeCodedPhySupported(); 108 boolean isLeExtendedAdvertisingSupported(); 109 boolean isLePeriodicAdvertisingSupported(); 110 int getLeMaximumAdvertisingDataLength(); 111 BluetoothActivityEnergyInfo reportActivityInfo(); 112 113 /** 114 * Requests the controller activity info asynchronously. 115 * The implementor is expected to reply with the 116 * {@link android.bluetooth.BluetoothActivityEnergyInfo} object placed into the Bundle with the 117 * key {@link android.os.BatteryStats#RESULT_RECEIVER_CONTROLLER_KEY}. 118 * The result code is ignored. 119 */ 120 oneway void requestActivityInfo(in ResultReceiver result); 121 122 void onLeServiceUp(); 123 void onBrEdrDown(); 124} 125