diff options
author | Joey Grover <joeygrover@gmail.com> | 2019-10-08 14:27:38 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2019-10-08 14:27:38 -0400 |
commit | 1db7c888e9990e16e6f62ac6008b0f0a8c1c748d (patch) | |
tree | 1f78b3ab3376543bb4d562a68214c0d756121364 | |
parent | e3f5b8be1e89c5df4eaabef7f966a712aab58f96 (diff) | |
download | sdl_android-1db7c888e9990e16e6f62ac6008b0f0a8c1c748d.tar.gz |
Register legacyBT BR to listen for state changebugfix/legacy_bt_br
-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"); + } } } } |