summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/phone/BluetoothHeadsetService.java31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/com/android/phone/BluetoothHeadsetService.java b/src/com/android/phone/BluetoothHeadsetService.java
index 875f7bfe..26da6759 100644
--- a/src/com/android/phone/BluetoothHeadsetService.java
+++ b/src/com/android/phone/BluetoothHeadsetService.java
@@ -226,16 +226,20 @@ public class BluetoothHeadsetService extends Service {
case BluetoothHeadset.STATE_CONNECTED:
Log.i(TAG, "Already connected to " + device + ", disconnecting " +
info.mRemoteDevice);
-
- headset = new HeadsetBase(mPowerManager, mAdapter, info.mRemoteDevice,
- info.mSocketFd, info.mRfcommChan, null);
- headset.disconnect();
+ rejectIncomingConnection(info);
break;
}
}
}
};
+ private void rejectIncomingConnection(IncomingConnectionInfo info) {
+ HeadsetBase headset = new HeadsetBase(mPowerManager, mAdapter,
+ info.mRemoteDevice, info.mSocketFd, info.mRfcommChan, null);
+ headset.disconnect();
+ }
+
+
private final BroadcastReceiver mBluetoothReceiver = new BroadcastReceiver() {
@Override
@@ -706,6 +710,7 @@ public class BluetoothHeadsetService extends Service {
return true;
}
}
+
public boolean createIncomingConnect(BluetoothDevice device) {
synchronized (BluetoothHeadsetService.this) {
HeadsetBase headset;
@@ -720,8 +725,22 @@ public class BluetoothHeadsetService extends Service {
mConnectingStatusHandler.obtainMessage(RFCOMM_CONNECTED, headset).sendToTarget();
return true;
- }
- }
+ }
+ }
+
+ public boolean rejectIncomingConnect(BluetoothDevice device) {
+ synchronized (BluetoothHeadsetService.this) {
+ BluetoothRemoteHeadset headset = mRemoteHeadsets.get(device);
+ if (headset != null) {
+ IncomingConnectionInfo info = headset.mIncomingInfo;
+ rejectIncomingConnection(info);
+ } else {
+ Log.e(TAG, "Error no record of remote headset");
+ }
+ return true;
+ }
+ }
+
public boolean acceptIncomingConnect(BluetoothDevice device) {
synchronized (BluetoothHeadsetService.this) {
HeadsetBase headset;