Getting a NullPointerException on usbManager.requestPermission()
try
{
UsbManager manager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
manager.requestPermission(device, PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_ONE_SHOT));
}
catch (Exception e)
{
e.printStackTrace();
}
Error :
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference
at android.os.Parcel.createException(Parcel.java:1956)
at android.os.Parcel.readException(Parcel.java:1918)
at android.os.Parcel.readException(Parcel.java:1868)
at android.hardware.usb.IUsbManager$Stub$Proxy.requestDevicePermission(IUsbManager.java:682)
at android.hardware.usb.UsbManager.requestPermission(UsbManager.java:554)
Which string is Android trying to compare? How can I bypass this error?
Other info:
- Android 9
- Problem does not appears on every device
- UsbDevice[mName=/dev/bus/usb/001/008,mVendorId=1947,mProductId=40,mClass=2,mSubclass=0,mProtocol=0,mManufacturerName=null,mProductName=null,mVersion=0.00,mSerialNumber=null,mConfigurations=[ UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=71,mInterfaces=[ UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=2,mSubclass=2,mProtocol=1,mEndpoints=[ UsbEndpoint[mAddress=131,mAttributes=3,mMaxPacketSize=8,mInterval=4]] W/System.err: UsbInterface[mId=1,mAlternateSetting=0,mName=null,mClass=10,mSubclass=0,mProtocol=0,mEndpoints=[ UsbEndpoint[mAddress=129,mAttributes=2,mMaxPacketSize=64,mInterval=0] UsbEndpoint[mAddress=2,mAttributes=2,mMaxPacketSize=64,mInterval=0]]]]