From 8ab1ffca8abe8c7db5bdf24175b724374b78579e Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
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
---
.../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 8b6d5baf818bb..df333307efb02 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
@@ -598,7 +598,13 @@ public boolean openDevice(int deviceID) {
} 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);