diff --git a/app/src/main/java/com/jiangdg/usbcamera/view/USBCameraActivity.java b/app/src/main/java/com/jiangdg/usbcamera/view/USBCameraActivity.java index 5e527ec..9046731 100644 --- a/app/src/main/java/com/jiangdg/usbcamera/view/USBCameraActivity.java +++ b/app/src/main/java/com/jiangdg/usbcamera/view/USBCameraActivity.java @@ -72,10 +72,6 @@ public class USBCameraActivity extends AppCompatActivity implements CameraDialog @Override public void onAttachDev(UsbDevice device) { - if (mCameraHelper == null || mCameraHelper.getUsbDeviceCount() == 0) { - showShortMsg("check no usb camera"); - return; - } // request open permission if (!isRequest) { isRequest = true; @@ -141,7 +137,7 @@ public class USBCameraActivity extends AppCompatActivity implements CameraDialog mUVCCameraView = (CameraViewInterface) mTextureView; mUVCCameraView.setCallback(this); mCameraHelper = UVCCameraHelper.getInstance(); - mCameraHelper.setDefaultFrameFormat(UVCCameraHelper.FRAME_FORMAT_YUYV); + mCameraHelper.setDefaultFrameFormat(UVCCameraHelper.FRAME_FORMAT_MJPEG); mCameraHelper.initUSBMonitor(this, mUVCCameraView, listener); diff --git a/libusbcamera/src/main/java/com/jiangdg/usbcamera/UVCCameraHelper.java b/libusbcamera/src/main/java/com/jiangdg/usbcamera/UVCCameraHelper.java index 20e20b7..7dd26f8 100644 --- a/libusbcamera/src/main/java/com/jiangdg/usbcamera/UVCCameraHelper.java +++ b/libusbcamera/src/main/java/com/jiangdg/usbcamera/UVCCameraHelper.java @@ -238,6 +238,7 @@ public class UVCCameraHelper { List deviceFilters = DeviceFilter .getDeviceFilters(mActivity.getApplicationContext(), R.xml.device_filter); if (mUSBMonitor == null || deviceFilters == null) +// throw new NullPointerException("mUSBMonitor ="+mUSBMonitor+"deviceFilters=;"+deviceFilters); return null; // matching all of filter devices return mUSBMonitor.getDeviceList(deviceFilters); diff --git a/libusbcamera/src/main/java/com/serenegiant/usb/USBMonitor.java b/libusbcamera/src/main/java/com/serenegiant/usb/USBMonitor.java index c51e567..0fe041d 100644 --- a/libusbcamera/src/main/java/com/serenegiant/usb/USBMonitor.java +++ b/libusbcamera/src/main/java/com/serenegiant/usb/USBMonitor.java @@ -181,6 +181,7 @@ public final class USBMonitor { mPermissionIntent = PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0); final IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); // ACTION_USB_DEVICE_ATTACHED never comes on some devices so it should not be added here + filter.addAction(ACTION_USB_DEVICE_ATTACHED); filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED); context.registerReceiver(mUsbReceiver, filter); } @@ -311,7 +312,15 @@ public final class USBMonitor { final HashMap deviceList = mUsbManager.getDeviceList(); // store those devices info before matching filter xml file String fileName = Environment.getExternalStorageDirectory()+ "/USBCamera/failed_devices.txt"; + File logFile = new File(fileName); + if(! logFile.exists()) { + try { + logFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } FileWriter fw = null; PrintWriter pw = null; final List result = new ArrayList();