Get access to USB mass storage device in android Get access to USB mass storage device in android android android

Get access to USB mass storage device in android


In this example I am using the FileUtils from Apache, but event without it you will see the logic used to read a USB Flash drive:

private UsbManager usbManager;private UsbDevice clef;ArrayList<File> images;usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);clef = null;if (usbManager != null){    HashMap<String,UsbDevice> deviceList = usbManager.getDeviceList();    if (deviceList != null)    {        Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();        while (deviceIterator.hasNext()) {            clef = deviceIterator.next();        }    }}if (clef != null){    File directory  = new File("/storage/UsbDriveA/");    if (directory != null) {        if (directory.canRead()) {            images = new ArrayList<File>();            String[] imageExtensions = {"jpg","jpeg","png","gif","JPG","JPEG","PNG","GIF"};            Iterator<File> iterateImages = FileUtils.iterateFiles(directory, imageExtensions, true);            while (iterateImages.hasNext()) {                File theImage = iterateImages.next();                if (!theImage.getName().startsWith(".", 0))                    images.add(theImage);            }            // custom process / methods... not very relevant here :             imageIndex = 0;            scale = 1.0f;            countImgs = images.size();            loadImage(imageIndex);        }    }}

In my manifest I have those lines, although I'm not sure they're all mandatory...

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-feature android:name="android.hardware.usb.host" /><uses-permission android:name="android.permission.USB_PERMISSION" /><uses-permission android:name="android.permission.WRITE_SETTINGS" />


I can't test this, not having such a cable myself, but my assumption would be that you can pass your filepath directly into the constructor which would look like:

File directory  = new File("/storage/UsbDriveA/");

Have you tried this?