Add auto Update
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / UsbMonitor.java
index 9076a9b..c874ba5 100644 (file)
@@ -28,10 +28,6 @@ public class UsbMonitor {
         mContext = context;
         mUsbManager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE);
 
-        HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList();
-        gLogger.error("device list size : " + deviceList.size());
-        Iterator<UsbDevice> 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<String, UsbDevice> deviceList;
+        try {
+            deviceList = mUsbManager.getDeviceList();
+        } catch (NullPointerException e) {
+            gLogger.error(e.getMessage());
+            e.printStackTrace();
+            return;
+        }
+        gLogger.error("device list size : " + deviceList.size());
+        Iterator<UsbDevice> 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){
+        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(){