blob: 0e554b7bb29781dac5207e34e72aead3930bd34a [file] [log] [blame]
/*
* Copyright 2008, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.bluetooth;
import android.bluetooth.IBluetoothCallback;
import android.bluetooth.IBluetoothMetadataListener;
import android.bluetooth.IBluetoothSocketManager;
import android.bluetooth.IBluetoothStateChangeCallback;
import android.bluetooth.BluetoothActivityEnergyInfo;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.OobData;
import android.os.ParcelUuid;
import android.os.ParcelFileDescriptor;
import android.os.ResultReceiver;
/**
* System private API for talking with the Bluetooth service.
*
* {@hide}
*/
interface IBluetooth
{
int getState();
boolean enable(boolean quietMode);
boolean disable();
@UnsupportedAppUsage
String getAddress();
ParcelUuid[] getUuids();
boolean setName(in String name);
String getName();
BluetoothClass getBluetoothClass();
boolean setBluetoothClass(in BluetoothClass bluetoothClass);
int getIoCapability();
boolean setIoCapability(int capability);
int getLeIoCapability();
boolean setLeIoCapability(int capability);
int getScanMode();
boolean setScanMode(int mode, int duration);
int getDiscoverableTimeout();
boolean setDiscoverableTimeout(int timeout);
boolean startDiscovery(String callingPackage, String callingFeatureId);
boolean cancelDiscovery();
boolean isDiscovering();
long getDiscoveryEndMillis();
int getAdapterConnectionState();
int getProfileConnectionState(int profile);
BluetoothDevice[] getBondedDevices();
boolean createBond(in BluetoothDevice device, in int transport, in OobData oobData);
boolean cancelBondProcess(in BluetoothDevice device);
boolean removeBond(in BluetoothDevice device);
int getBondState(in BluetoothDevice device);
boolean isBondingInitiatedLocally(in BluetoothDevice device);
long getSupportedProfiles();
int getConnectionState(in BluetoothDevice device);
String getRemoteName(in BluetoothDevice device);
int getRemoteType(in BluetoothDevice device);
@UnsupportedAppUsage
String getRemoteAlias(in BluetoothDevice device);
boolean setRemoteAlias(in BluetoothDevice device, in String name);
int getRemoteClass(in BluetoothDevice device);
ParcelUuid[] getRemoteUuids(in BluetoothDevice device);
@UnsupportedAppUsage
boolean fetchRemoteUuids(in BluetoothDevice device);
boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid);
int getBatteryLevel(in BluetoothDevice device);
int getMaxConnectedAudioDevices();
boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode);
boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[]
passkey);
boolean setPairingConfirmation(in BluetoothDevice device, boolean accept);
int getPhonebookAccessPermission(in BluetoothDevice device);
boolean setSilenceMode(in BluetoothDevice device, boolean silence);
boolean getSilenceMode(in BluetoothDevice device);
boolean setPhonebookAccessPermission(in BluetoothDevice device, int value);
int getMessageAccessPermission(in BluetoothDevice device);
boolean setMessageAccessPermission(in BluetoothDevice device, int value);
int getSimAccessPermission(in BluetoothDevice device);
boolean setSimAccessPermission(in BluetoothDevice device, int value);
void registerCallback(in IBluetoothCallback callback);
void unregisterCallback(in IBluetoothCallback callback);
// For Socket
IBluetoothSocketManager getSocketManager();
boolean factoryReset();
boolean isMultiAdvertisementSupported();
boolean isOffloadedFilteringSupported();
boolean isOffloadedScanBatchingSupported();
boolean isActivityAndEnergyReportingSupported();
boolean isLe2MPhySupported();
boolean isLeCodedPhySupported();
boolean isLeExtendedAdvertisingSupported();
boolean isLePeriodicAdvertisingSupported();
int getLeMaximumAdvertisingDataLength();
BluetoothActivityEnergyInfo reportActivityInfo();
// For Metadata
boolean registerMetadataListener(in IBluetoothMetadataListener listener, in BluetoothDevice device);
boolean unregisterMetadataListener(in BluetoothDevice device);
boolean setMetadata(in BluetoothDevice device, in int key, in byte[] value);
byte[] getMetadata(in BluetoothDevice device, in int key);
/**
* Requests the controller activity info asynchronously.
* The implementor is expected to reply with the
* {@link android.bluetooth.BluetoothActivityEnergyInfo} object placed into the Bundle with the
* key {@link android.os.BatteryStats#RESULT_RECEIVER_CONTROLLER_KEY}.
* The result code is ignored.
*/
oneway void requestActivityInfo(in ResultReceiver result);
void onLeServiceUp();
void onBrEdrDown();
boolean connectAllEnabledProfiles(in BluetoothDevice device);
boolean disconnectAllEnabledProfiles(in BluetoothDevice device);
boolean setActiveDevice(in BluetoothDevice device, in int profiles);
List<BluetoothDevice> getMostRecentlyConnectedDevices();
boolean removeActiveDevice(in int profiles);
}