diff options
author | Joseph Pirozzo <pirozzoj@google.com> | 2016-03-21 15:49:48 -0700 |
---|---|---|
committer | Joseph Pirozzo <pirozzoj@google.com> | 2016-03-30 12:20:51 -0700 |
commit | 10dfb4bf91cae777ada4eb308415de5589fa501b (patch) | |
tree | c390a426088599575bfffe7c96421e7b2e12370f /framework/java/android/bluetooth/BluetoothPbapClient.java | |
parent | fb89dbef131120f6b566d0a5ce94684cb38b144f (diff) |
PBAP client Settings profile.
Add content to Settings and SettingsLib to add a checkbox for PBAP
client profile, and remove the box for PBAP server profile when the
client profile is enabled.
Bug: 27642222
Change-Id: I125559904a8e017a01ae90b1f6425129a87cbee3
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothPbapClient.java')
-rw-r--r-- | framework/java/android/bluetooth/BluetoothPbapClient.java | 72 |
1 files changed, 66 insertions, 6 deletions
diff --git a/framework/java/android/bluetooth/BluetoothPbapClient.java b/framework/java/android/bluetooth/BluetoothPbapClient.java index 736e55d17d..eab4c6f513 100644 --- a/framework/java/android/bluetooth/BluetoothPbapClient.java +++ b/framework/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; + } } |