From 630272eb552618e4cfa40f5bef2c5d64f5b85f7a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 17 Jun 2024 15:10:33 -0700 Subject: [PATCH] Fixed requesting USB permission on Android 14 (thanks @ikhoeyZX!) Fixes https://github.com/libsdl-org/SDL/issues/9831 (cherry picked from commit 8ab1ffca8abe8c7db5bdf24175b724374b78579e) (cherry picked from commit 5a26b26880539e4c54e8457290a8586a0a086ca8) --- .../src/main/java/org/libsdl/app/HIDDeviceManager.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 e7281fdf26..ea6b5d5b17 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 @@ -590,7 +590,13 @@ public class HIDDeviceManager { } else { flags = 0; } - mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags)); + if (Build.VERSION.SDK_INT >= 33 /* Android 14.0 (U) */) { + Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION); + intent.setPackage(mContext.getPackageName()); + mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags)); + } else { + mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags)); + } } catch (Exception e) { Log.v(TAG, "Couldn't request permission for USB device " + usbDevice); HIDDeviceOpenResult(deviceID, false);