X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fai%2Fsuanzi%2Frtmpclient%2FUsbMonitor.java;h=c874ba5fb9800cdee98400ec5ac84271cf472de6;hb=HEAD;hp=c862ff0abcc346f2634fdb6a7ce4f8b7c5df6680;hpb=0cbf18f82e25a7ba5d7eaab0411595c3efd41030;p=rtmpclient.git diff --git a/app/src/main/java/ai/suanzi/rtmpclient/UsbMonitor.java b/app/src/main/java/ai/suanzi/rtmpclient/UsbMonitor.java index c862ff0..c874ba5 100644 --- a/app/src/main/java/ai/suanzi/rtmpclient/UsbMonitor.java +++ b/app/src/main/java/ai/suanzi/rtmpclient/UsbMonitor.java @@ -28,10 +28,6 @@ public class UsbMonitor { mContext = context; mUsbManager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE); - HashMap deviceList = mUsbManager.getDeviceList(); - gLogger.error("device list size : " + deviceList.size()); - Iterator deviceIterator = deviceList.values().iterator(); - //PendingIntent mPermissionIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(ACTION_USB_PERMISSION), 0); IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_DEVICE_DETACHED); mContext.registerReceiver(mUsbReceiver, filter); filter = new IntentFilter(UsbManager.ACTION_USB_DEVICE_ATTACHED); @@ -39,6 +35,17 @@ public class UsbMonitor { filter = new IntentFilter(ACTION_USB_PERMISSION); mContext.registerReceiver(mUsbReceiver, filter); + HashMap deviceList; + try { + deviceList = mUsbManager.getDeviceList(); + } catch (NullPointerException e) { + gLogger.error(e.getMessage()); + e.printStackTrace(); + return; + } + gLogger.error("device list size : " + deviceList.size()); + Iterator deviceIterator = deviceList.values().iterator(); + //PendingIntent mPermissionIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(ACTION_USB_PERMISSION), 0); while (deviceIterator.hasNext()) { UsbDevice device = deviceIterator.next(); gLogger.error(device.toString()); @@ -49,16 +56,16 @@ public class UsbMonitor { public void unregisterReceiver (){ mContext.unregisterReceiver(mUsbReceiver); - } private boolean isUvcCamera(UsbDevice device){ - return (device.getDeviceProtocol() == 1 && device.getProductName().contains("Camera")); + if((device == null) || (device.getProductName() == null)) return false; + return device.getProductName().toLowerCase().contains("camera") || (device.getDeviceProtocol() == 1); } public boolean hasUsbCamera(){ gLogger.error("hasUsbCamera - size: " + mUsbCameraList.size()); - return (mUsbCameraList.size() > 0 ? true : false); + return mUsbCameraList.size() > 0; } public int getUsbCameraCount(){