diff options
author | Brett <3911458+BrettyWhite@users.noreply.github.com> | 2019-10-11 13:29:41 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-11 13:29:41 -0400 |
commit | 25216910ec03589a1d03a5d21c26947569dd6f40 (patch) | |
tree | ddcc49c73f38b136ca2a689e412ea5bc9c804709 | |
parent | be84a9a41aead16b28092912899973b8ab752363 (diff) | |
parent | 1db7c888e9990e16e6f62ac6008b0f0a8c1c748d (diff) | |
download | sdl_android-25216910ec03589a1d03a5d21c26947569dd6f40.tar.gz |
Merge pull request #1192 from smartdevicelink/bugfix/legacy_bt_br
Register legacyBT BR to listen for state change
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java index a3fe9c5b9..9a300fa08 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java @@ -32,6 +32,7 @@ package com.smartdevicelink.transport; +import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.ComponentName; @@ -413,7 +414,10 @@ public class TransportManager extends TransportManagerBase{ legacyBluetoothHandler = new LegacyBluetoothHandler(this); legacyBluetoothTransport = new MultiplexBluetoothTransport(legacyBluetoothHandler); if(contextWeakReference.get() != null){ - contextWeakReference.get().registerReceiver(legacyDisconnectReceiver,new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED) ); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); + intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); + contextWeakReference.get().registerReceiver(legacyDisconnectReceiver, intentFilter ); } }else{ new Handler().postDelayed(new Runnable() { @@ -451,8 +455,15 @@ public class TransportManager extends TransportManagerBase{ @Override public void onReceive(Context context, Intent intent) { if(intent != null){ - if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(intent.getAction())){ + String action = intent.getAction(); + if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)){ exitLegacyMode("Bluetooth disconnected"); + }else if(action.equalsIgnoreCase(BluetoothAdapter.ACTION_STATE_CHANGED)){ + int bluetoothState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1); + if(bluetoothState == BluetoothAdapter.STATE_TURNING_OFF || bluetoothState == BluetoothAdapter.STATE_OFF){ + Log.d(TAG, "Bluetooth is shutting off, exiting legacy mode."); + exitLegacyMode("Bluetooth adapter shutting off"); + } } } } |