SDL: Added a runtime check for BLUETOOTH_CONNECT in addition to BLUETOOTH (thanks @perepujal!) (fe76c)

From fe76c407164eebd7710160d9fa218fca05c92d17 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 24 Dec 2023 06:50:42 -0800
Subject: [PATCH] Added a runtime check for BLUETOOTH_CONNECT in addition to
 BLUETOOTH (thanks @perepujal!)

Fixes https://github.com/libsdl-org/SDL/issues/8731

(cherry picked from commit bb0e0ae0809c42e5a20f7e13aad8a34b8e7145cf)
---
 .../app/src/main/java/org/libsdl/app/HIDDeviceManager.java  | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java b/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
index af605ac2db64..e7281fdf26ac 100644
--- a/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
+++ b/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
@@ -359,6 +359,12 @@ private void connectHIDDeviceUSB(UsbDevice usbDevice) {
     private void initializeBluetooth() {
         Log.d(TAG, "Initializing Bluetooth");
 
+        if (Build.VERSION.SDK_INT >= 31 /* Android 12  */ &&
+            mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH_CONNECT, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) {
+            Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH_CONNECT");
+            return;
+        }
+
         if (Build.VERSION.SDK_INT <= 30 /* Android 11.0 (R) */ &&
             mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) {
             Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH");