|
41 | 41 | import android.content.ComponentName; |
42 | 42 | import android.content.Context; |
43 | 43 | import android.content.Intent; |
| 44 | +import android.content.pm.PackageManager; |
44 | 45 | import android.hardware.usb.UsbManager; |
45 | 46 | import android.os.Build; |
46 | 47 | import android.os.Looper; |
47 | 48 | import android.os.Parcelable; |
48 | 49 | import android.util.AndroidRuntimeException; |
49 | 50 |
|
50 | 51 | import androidx.annotation.CallSuper; |
| 52 | +import androidx.core.content.ContextCompat; |
51 | 53 |
|
52 | 54 | import com.smartdevicelink.proxy.rpc.VehicleType; |
53 | 55 | import com.smartdevicelink.transport.RouterServiceValidator.TrustedListCallback; |
|
66 | 68 | import java.util.Vector; |
67 | 69 | import java.util.concurrent.ConcurrentLinkedQueue; |
68 | 70 |
|
| 71 | +import static android.Manifest.permission.BLUETOOTH_CONNECT; |
| 72 | +import static android.Manifest.permission.BLUETOOTH_SCAN; |
69 | 73 | import static com.smartdevicelink.transport.TransportConstants.FOREGROUND_EXTRA; |
70 | 74 |
|
71 | 75 | public abstract class SdlBroadcastReceiver extends BroadcastReceiver { |
@@ -126,6 +130,24 @@ public void onReceive(Context context, Intent intent) { |
126 | 130 | intent.setAction(null); |
127 | 131 | onSdlEnabled(context, intent); |
128 | 132 | return; |
| 133 | + } else { |
| 134 | + //Should Be BT? |
| 135 | + |
| 136 | + //Check BT Permissions |
| 137 | + int btConnectPermission = ContextCompat.checkSelfPermission(context, BLUETOOTH_CONNECT); |
| 138 | + int btScanPermission = ContextCompat.checkSelfPermission(context, BLUETOOTH_SCAN); |
| 139 | + |
| 140 | + //Get ComponentName |
| 141 | + PackageManager pm = context.getPackageManager(); |
| 142 | + ComponentName componentName = intent.getParcelableExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_CMP_NAME); |
| 143 | + |
| 144 | + if (btConnectPermission != PackageManager.PERMISSION_GRANTED || btScanPermission != PackageManager.PERMISSION_GRANTED) { |
| 145 | + //User has denied BT Permissions we need to disable this apps router service |
| 146 | + pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); |
| 147 | + } else { |
| 148 | + //User has enabled BT Permissions we need to enable this apps router service |
| 149 | + pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); |
| 150 | + } |
129 | 151 | } |
130 | 152 |
|
131 | 153 | if (intent.hasExtra(BluetoothDevice.EXTRA_DEVICE)) { //Grab the bluetooth device if available |
|
0 commit comments