return false;
}
+ /** @hide */
+ public boolean isBondingInitiatedLocally() {
+ try {
+ return sService.isBondingInitiatedLocally(this);
+ } catch (RemoteException e) {Log.e(TAG, "", e);}
+ return false;
+ }
+
/**
* Set the Out Of Band data for a remote device to be used later
* in the pairing mechanism. Users can obtain this data through other
boolean cancelBondProcess(in BluetoothDevice device);
boolean removeBond(in BluetoothDevice device);
int getBondState(in BluetoothDevice device);
+ boolean isBondingInitiatedLocally(in BluetoothDevice device);
int getConnectionState(in BluetoothDevice device);
String getRemoteName(in BluetoothDevice device);
private static final long MAX_UUID_DELAY_FOR_AUTO_CONNECT = 5000;
private static final long MAX_HOGP_DELAY_FOR_AUTO_CONNECT = 30000;
- /** Auto-connect after pairing only if locally initiated. */
- private boolean mConnectAfterPairing;
-
/**
* Describes the current device and profile for logging.
*
return false;
}
- mConnectAfterPairing = true; // auto-connect after pairing
return true;
}
* slightly different for local vs. remote initiated pairing dialogs.
*/
boolean isUserInitiatedPairing() {
- return mConnectAfterPairing;
+ return mDevice.isBondingInitiatedLocally();
}
public void unpair() {
void onBondingStateChanged(int bondState) {
if (bondState == BluetoothDevice.BOND_NONE) {
mProfiles.clear();
- mConnectAfterPairing = false; // cancel auto-connect
setPhonebookPermissionChoice(ACCESS_UNKNOWN);
setMessagePermissionChoice(ACCESS_UNKNOWN);
setSimPermissionChoice(ACCESS_UNKNOWN);
if (bondState == BluetoothDevice.BOND_BONDED) {
if (mDevice.isBluetoothDock()) {
onBondingDockConnect();
- } else if (mConnectAfterPairing) {
+ } else if (mDevice.isBondingInitiatedLocally()) {
connect(false);
}
- mConnectAfterPairing = false;
}
}