am c172b209: Merge "Adds APIs for Bluetooth PBAP and MAP access permission." into lmp-dev

* commit 'c172b2090317b158974bc73d8baa141449a1d784':
  Adds APIs for Bluetooth PBAP and MAP access permission.
This commit is contained in:
Edward Jee
2014-09-16 08:42:21 +00:00
committed by Android Git Automerger
3 changed files with 104 additions and 35 deletions

View File

@@ -517,6 +517,27 @@ public final class BluetoothDevice implements Parcelable {
*/
public static final String EXTRA_UUID = "android.bluetooth.device.extra.UUID";
/**
* For {@link #getPhonebookAccessPermission}, {@link #setPhonebookAccessPermission},
* {@link #getMessageAccessPermission} and {@link #setMessageAccessPermission}.
* @hide
*/
public static final int ACCESS_UNKNOWN = 0;
/**
* For {@link #getPhonebookAccessPermission}, {@link #setPhonebookAccessPermission},
* {@link #getMessageAccessPermission} and {@link #setMessageAccessPermission}.
* @hide
*/
public static final int ACCESS_ALLOWED = 1;
/**
* For {@link #getPhonebookAccessPermission}, {@link #setPhonebookAccessPermission},
* {@link #getMessageAccessPermission} and {@link #setMessageAccessPermission}.
* @hide
*/
public static final int ACCESS_REJECTED = 2;
/**
* No preferrence of physical transport for GATT connections to remote dual-mode devices
* @hide
@@ -951,39 +972,6 @@ public final class BluetoothDevice implements Parcelable {
return null;
}
/**
* Get trust state of a remote device.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}.
* @hide
*/
public boolean getTrustState() {
//TODO(BT)
/*
try {
return sService.getTrustState(this);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}*/
return false;
}
/**
* Set trust state for a remote device.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
* @param value the trust state value (true or false)
* @hide
*/
public boolean setTrust(boolean value) {
//TODO(BT)
/*
try {
return sService.setTrust(this, value);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}*/
return false;
}
/**
* Returns the supported features (UUIDs) of the remote device.
*
@@ -1134,6 +1122,82 @@ public final class BluetoothDevice implements Parcelable {
return false;
}
/**
* Requires {@link android.Manifest.permission#BLUETOOTH}.
* @return Whether the phonebook access is allowed to this device. Can be
* {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}.
* @hide
*/
public int getPhonebookAccessPermission() {
if (sService == null) {
return ACCESS_UNKNOWN;
}
try {
return sService.getPhonebookAccessPermission(this);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
return ACCESS_UNKNOWN;
}
/**
* Sets whether the phonebook access is allowed to this device.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
* @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or
* {@link #ACCESS_REJECTED}.
* @return Whether the value has been successfully set.
* @hide
*/
public boolean setPhonebookAccessPermission(int value) {
if (sService == null) {
return false;
}
try {
return sService.setPhonebookAccessPermission(this, value);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
return false;
}
/**
* Requires {@link android.Manifest.permission#BLUETOOTH}.
* @return Whether the message access is allowed to this device. Can be
* {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}.
* @hide
*/
public int getMessageAccessPermission() {
if (sService == null) {
return ACCESS_UNKNOWN;
}
try {
return sService.getMessageAccessPermission(this);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
return ACCESS_UNKNOWN;
}
/**
* Sets whether the message access is allowed to this device.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
* @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or
* {@link #ACCESS_REJECTED}.
* @return Whether the value has been successfully set.
* @hide
*/
public boolean setMessageAccessPermission(int value) {
if (sService == null) {
return false;
}
try {
return sService.setMessageAccessPermission(this, value);
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
return false;
}
/**
* Create an RFCOMM {@link BluetoothSocket} ready to start a secure
* outgoing connection to this remote device on given channel.
@@ -1343,5 +1407,4 @@ public final class BluetoothDevice implements Parcelable {
} catch (RemoteException e) {Log.e(TAG, "", e);}
return null;
}
}

View File

@@ -75,6 +75,11 @@ interface IBluetooth
passkey);
boolean setPairingConfirmation(in BluetoothDevice device, boolean accept);
int getPhonebookAccessPermission(in BluetoothDevice device);
boolean setPhonebookAccessPermission(in BluetoothDevice device, int value);
int getMessageAccessPermission(in BluetoothDevice device);
boolean setMessageAccessPermission(in BluetoothDevice device, int value);
void sendConnectionStateChange(in BluetoothDevice device, int profile, int state, int prevState);
void registerCallback(in IBluetoothCallback callback);

View File

@@ -864,7 +864,8 @@
android:description="@string/permdesc_bluetoothAdmin"
android:label="@string/permlab_bluetoothAdmin" />
<!-- @SystemApi Allows applications to pair bluetooth devices without user interaction.
<!-- @SystemApi Allows applications to pair bluetooth devices without user interaction, and to
allow or disallow phonebook access or message access.
This is not available to third party applications. -->
<permission android:name="android.permission.BLUETOOTH_PRIVILEGED"
android:permissionGroup="android.permission-group.BLUETOOTH_NETWORK"