Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b8696e3 authored by Andre Eisenbach's avatar Andre Eisenbach
Browse files

Add API to check if a Bluetooth connection is encrypted (1/2)

Bug: 19186961
Change-Id: I24656a07ee23ebfe067a9dfb9c1bc4041c782d8c
parent 9a166c7d
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -6415,6 +6415,8 @@ package android.bluetooth {
    method public java.lang.String getName();
    method public java.lang.String getName();
    method public int getType();
    method public int getType();
    method public android.os.ParcelUuid[] getUuids();
    method public android.os.ParcelUuid[] getUuids();
    method public boolean isConnected();
    method public boolean isEncrypted();
    method public boolean setPairingConfirmation(boolean);
    method public boolean setPairingConfirmation(boolean);
    method public boolean setPin(byte[]);
    method public boolean setPin(byte[]);
    method public void writeToParcel(android.os.Parcel, int);
    method public void writeToParcel(android.os.Parcel, int);
+33 −1
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package android.bluetooth;


import android.annotation.SdkConstant;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.content.Context;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;
@@ -66,6 +67,14 @@ public final class BluetoothDevice implements Parcelable {
    private static final String TAG = "BluetoothDevice";
    private static final String TAG = "BluetoothDevice";
    private static final boolean DBG = false;
    private static final boolean DBG = false;


    /**
     * Connection state bitmask as returned by getConnectionState.
     */
    private static final int CONNECTION_STATE_DISCONNECTED = 0;
    private static final int CONNECTION_STATE_CONNECTED = 1;
    private static final int CONNECTION_STATE_ENCRYPTED_BREDR = 2;
    private static final int CONNECTION_STATE_ENCRYPTED_LE = 4;

    /**
    /**
     * Sentinel error value for this class. Guaranteed to not equal any other
     * Sentinel error value for this class. Guaranteed to not equal any other
     * integer constant in this class. Provided as a convenience for functions
     * integer constant in this class. Provided as a convenience for functions
@@ -940,13 +949,36 @@ public final class BluetoothDevice implements Parcelable {
     * @return True if there is at least one open connection to this device.
     * @return True if there is at least one open connection to this device.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public boolean isConnected() {
    public boolean isConnected() {
        if (sService == null) {
        if (sService == null) {
            // BT is not enabled, we cannot be connected.
            // BT is not enabled, we cannot be connected.
            return false;
            return false;
        }
        }
        try {
        try {
            return sService.isConnected(this);
            return sService.getConnectionState(this) != CONNECTION_STATE_DISCONNECTED;
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
            return false;
        }
    }

    /**
     * Returns whether there is an open connection to this device
     * that has been encrypted.
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
     *
     * @return True if there is at least one encrypted connection to this device.
     * @hide
     */
    @SystemApi
    public boolean isEncrypted() {
        if (sService == null) {
            // BT is not enabled, we cannot be connected.
            return false;
        }
        try {
            return sService.getConnectionState(this) > CONNECTION_STATE_CONNECTED;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
            Log.e(TAG, "", e);
            return false;
            return false;
+1 −1
Original line number Original line Diff line number Diff line
@@ -59,7 +59,7 @@ interface IBluetooth
    boolean cancelBondProcess(in BluetoothDevice device);
    boolean cancelBondProcess(in BluetoothDevice device);
    boolean removeBond(in BluetoothDevice device);
    boolean removeBond(in BluetoothDevice device);
    int getBondState(in BluetoothDevice device);
    int getBondState(in BluetoothDevice device);
    boolean isConnected(in BluetoothDevice device);
    int getConnectionState(in BluetoothDevice device);


    String getRemoteName(in BluetoothDevice device);
    String getRemoteName(in BluetoothDevice device);
    int getRemoteType(in BluetoothDevice device);
    int getRemoteType(in BluetoothDevice device);