30
30
import android .os .Build ;
31
31
import android .util .AttributeSet ;
32
32
import android .util .Xml ;
33
-
33
+ import androidx . core . content . ContextCompat ;
34
34
import androidx .core .util .Pair ;
35
35
36
36
import org .xmlpull .v1 .XmlPullParser ;
@@ -302,7 +302,7 @@ public static String[] getDeviceStrings() {
302
302
303
303
return devs ;
304
304
}
305
-
305
+ /*
306
306
public static void registerUSBBroadCast() {
307
307
IntentFilter filter = new IntentFilter();
308
308
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
@@ -315,7 +315,21 @@ public static void registerUSBBroadCast() {
315
315
context.registerReceiver(mUsbReceiver, filter);
316
316
}
317
317
}
318
+ */
319
+ public static void registerUSBBroadCast () {
320
+ IntentFilter filter = new IntentFilter ();
321
+ filter .addAction (UsbManager .ACTION_USB_DEVICE_DETACHED );
322
+ filter .addAction (UsbManager .ACTION_USB_DEVICE_ATTACHED );
323
+ filter .addAction (ACTION_USB_PERMISSION );
318
324
325
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
326
+ // Use ContextCompat.registerReceiver with RECEIVER_NOT_EXPORTED
327
+ ContextCompat .registerReceiver (context , mUsbReceiver , filter , ContextCompat .RECEIVER_NOT_EXPORTED );
328
+ } else {
329
+ // Older Android versions do not require these flags
330
+ context .registerReceiver (mUsbReceiver , filter );
331
+ }
332
+ }
319
333
320
334
public static void unregisterUSBBroadCast () {
321
335
context .unregisterReceiver (mUsbReceiver );
0 commit comments