diff options
-rw-r--r-- | src/com/android/phone/BluetoothHeadsetService.java | 31 |
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; |