diff options
author | Gaurav Asati <gasati@codeaurora.org> | 2014-05-28 11:33:14 +0530 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2014-10-11 16:31:43 -0700 |
commit | 869566a941148a72175be5f172fcf139b40e112a (patch) | |
tree | e8ad38a195921586baa18fe23ff0dcc105b8204d | |
parent | 3219c40c1c79b855f7b3f83fbcad015adb9de24c (diff) | |
download | android_packages_apps_Bluetooth-869566a941148a72175be5f172fcf139b40e112a.tar.gz android_packages_apps_Bluetooth-869566a941148a72175be5f172fcf139b40e112a.tar.bz2 android_packages_apps_Bluetooth-869566a941148a72175be5f172fcf139b40e112a.zip |
Bluetooth: Delay timeout for ConnectOtherProfile.
Some devices reject connection when connection is
initiated after 6 secs, delay connection timeout for
such devices to 10 secs.
Change-Id: I676b98ae64085a45bd6ecb9a6aeac7921a009e84
CRs-Fixed: 671762
-rw-r--r-- | src/com/android/bluetooth/btservice/AdapterService.java | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/com/android/bluetooth/btservice/AdapterService.java b/src/com/android/bluetooth/btservice/AdapterService.java index 575031750..9d5befdbb 100644 --- a/src/com/android/bluetooth/btservice/AdapterService.java +++ b/src/com/android/bluetooth/btservice/AdapterService.java @@ -78,6 +78,7 @@ public class AdapterService extends Service { private static final String TAG = "BluetoothAdapterService"; private static final boolean DBG = true; private static final boolean TRACE_REF = true; + private static final String delayConnectTimeoutDevice[] = {"00:23:3D"}; // volkswagen carkit //For Debugging only private static int sRefCount=0; @@ -414,12 +415,13 @@ public class AdapterService extends Service { if (DBG)debugLog("cleanup() done"); } - private static final int MESSAGE_PROFILE_SERVICE_STATE_CHANGED =1; - private static final int MESSAGE_PROFILE_CONNECTION_STATE_CHANGED=20; + private static final int MESSAGE_PROFILE_SERVICE_STATE_CHANGED = 1; + private static final int MESSAGE_PROFILE_CONNECTION_STATE_CHANGED = 20; private static final int MESSAGE_CONNECT_OTHER_PROFILES = 30; - private static final int CONNECT_OTHER_PROFILES_TIMEOUT= 6000; + private static final int CONNECT_OTHER_PROFILES_TIMEOUT = 6000; + private static final int CONNECT_OTHER_PROFILES_TIMEOUT_DEYALED = 10000; private static final int MESSAGE_AUTO_CONNECT_PROFILES = 50; - private static final int AUTO_CONNECT_PROFILES_TIMEOUT= 500; + private static final int AUTO_CONNECT_PROFILES_TIMEOUT = 500; private final Handler mHandler = new Handler() { @Override @@ -1219,12 +1221,25 @@ public class AdapterService extends Service { } public void connectOtherProfile(BluetoothDevice device, int firstProfileStatus){ + String deviceAddress = device.getAddress(); + boolean isConnectionTimeoutDelayed = false; + + for (int i = 0; i < delayConnectTimeoutDevice.length;i++) { + if (deviceAddress.indexOf(delayConnectTimeoutDevice[i]) == 0) { + isConnectionTimeoutDelayed = true; + } + } if ((mHandler.hasMessages(MESSAGE_CONNECT_OTHER_PROFILES) == false) && (isQuietModeEnabled()== false)){ Message m = mHandler.obtainMessage(MESSAGE_CONNECT_OTHER_PROFILES); m.obj = device; m.arg1 = (int)firstProfileStatus; - mHandler.sendMessageDelayed(m,CONNECT_OTHER_PROFILES_TIMEOUT); + if (isConnectionTimeoutDelayed) { + mHandler.sendMessageDelayed(m,CONNECT_OTHER_PROFILES_TIMEOUT_DEYALED); + } + else { + mHandler.sendMessageDelayed(m,CONNECT_OTHER_PROFILES_TIMEOUT); + } } } |