diff options
| author | Joseph Pirozzo <pirozzoj@google.com> | 2016-03-30 21:00:52 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-03-30 21:00:54 +0000 |
| commit | 43b5d980d89f4badfe89008febf5fcd6e1ae9d49 (patch) | |
| tree | a899a3d60b98b57d3d7bcbe1b57bdef840452773 /core/java/android | |
| parent | 0ade7ff3c0100d14ca2ae0319830b5210e66ed27 (diff) | |
| parent | 563c700f7025d2f792a52b7483725b3d58eaa7a6 (diff) | |
Merge "PBAP client Settings profile." into nyc-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/bluetooth/BluetoothPbapClient.java | 72 | ||||
| -rw-r--r-- | core/java/android/bluetooth/IBluetoothPbapClient.aidl | 2 | ||||
| -rwxr-xr-x | core/java/android/provider/Settings.java | 11 |
3 files changed, 79 insertions, 6 deletions
diff --git a/core/java/android/bluetooth/BluetoothPbapClient.java b/core/java/android/bluetooth/BluetoothPbapClient.java index 736e55d17d8a..eab4c6f5130c 100644 --- a/core/java/android/bluetooth/BluetoothPbapClient.java +++ b/core/java/android/bluetooth/BluetoothPbapClient.java @@ -40,7 +40,6 @@ public final class BluetoothPbapClient implements BluetoothProfile { "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED"; private IBluetoothPbapClient mService; - private BluetoothDevice mDevice; private final Context mContext; private ServiceListener mServiceListener; private BluetoothAdapter mAdapter; @@ -173,7 +172,6 @@ public final class BluetoothPbapClient implements BluetoothProfile { } if (mService != null && isEnabled() && isValidDevice(device)) { try { - mDevice = device; return mService.connect(device); } catch (RemoteException e) { Log.e(TAG, Log.getStackTraceString(new Throwable())); @@ -193,13 +191,13 @@ public final class BluetoothPbapClient implements BluetoothProfile { * @return false on error, * true otherwise */ - public boolean disconnect() { + public boolean disconnect(BluetoothDevice device) { if (DBG) { - log("disconnect(" + mDevice + ")"); + log("disconnect(" + device + ")" + new Exception() ); } - if (mService != null && isEnabled() && isValidDevice(mDevice)) { + if (mService != null && isEnabled() && isValidDevice(device)) { try { - mService.disconnect(mDevice); + mService.disconnect(device); return true; } catch (RemoteException e) { Log.e(TAG, Log.getStackTraceString(new Throwable())); @@ -328,4 +326,66 @@ public final class BluetoothPbapClient implements BluetoothProfile { } return false; } + + /** + * Set priority of the profile + * + * <p> The device should already be paired. + * Priority can be one of {@link #PRIORITY_ON} or + * {@link #PRIORITY_OFF}, + * + * @param device Paired bluetooth device + * @param priority + * @return true if priority is set, false on error + */ + public boolean setPriority(BluetoothDevice device, int priority) { + if (DBG) { + log("setPriority(" + device + ", " + priority + ")"); + } + if (mService != null && isEnabled() && + isValidDevice(device)) { + if (priority != BluetoothProfile.PRIORITY_OFF && + priority != BluetoothProfile.PRIORITY_ON) { + return false; + } + try { + return mService.setPriority(device, priority); + } catch (RemoteException e) { + Log.e(TAG, Log.getStackTraceString(new Throwable())); + return false; + } + } + if (mService == null) { + Log.w(TAG, "Proxy not attached to service"); + } + return false; + } + + /** + * Get the priority of the profile. + * + * <p> The priority can be any of: + * {@link #PRIORITY_AUTO_CONNECT}, {@link #PRIORITY_OFF}, + * {@link #PRIORITY_ON}, {@link #PRIORITY_UNDEFINED} + * + * @param device Bluetooth device + * @return priority of the device + */ + public int getPriority(BluetoothDevice device) { + if (VDBG) { + log("getPriority(" + device + ")"); + } + if (mService != null && isEnabled() && isValidDevice(device)) { + try { + return mService.getPriority(device); + } catch (RemoteException e) { + Log.e(TAG, Log.getStackTraceString(new Throwable())); + return PRIORITY_OFF; + } + } + if (mService == null) { + Log.w(TAG, "Proxy not attached to service"); + } + return PRIORITY_OFF; + } } diff --git a/core/java/android/bluetooth/IBluetoothPbapClient.aidl b/core/java/android/bluetooth/IBluetoothPbapClient.aidl index b26ea2957142..6d4c5a6f90b6 100644 --- a/core/java/android/bluetooth/IBluetoothPbapClient.aidl +++ b/core/java/android/bluetooth/IBluetoothPbapClient.aidl @@ -29,4 +29,6 @@ interface IBluetoothPbapClient { List<BluetoothDevice> getConnectedDevices(); List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states); int getConnectionState(in BluetoothDevice device); + boolean setPriority(in BluetoothDevice device, int priority); + int getPriority(in BluetoothDevice device); } diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index a78f4687df2f..ebecfdb714dd 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -7679,6 +7679,9 @@ public final class Settings { BLUETOOTH_MAP_PRIORITY_PREFIX = "bluetooth_map_priority_"; /** {@hide} */ public static final String + BLUETOOTH_PBAP_CLIENT_PRIORITY_PREFIX = "bluetooth_pbap_client_priority_"; + /** {@hide} */ + public static final String BLUETOOTH_SAP_PRIORITY_PREFIX = "bluetooth_sap_priority_"; /** @@ -7834,6 +7837,14 @@ public final class Settings { } /** + * Get the key that retrieves a bluetooth pbap client priority. + * @hide + */ + public static final String getBluetoothPbapClientPriorityKey(String address) { + return BLUETOOTH_PBAP_CLIENT_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT); + } + + /** * Get the key that retrieves a bluetooth map priority. * @hide */ |
