java - masivo - mi pc no reconoce mi samsung j2 prime
Acceda al dispositivo de almacenamiento masivo USB en Android (2)
En este ejemplo, estoy usando FileUtils de Apache, pero en el evento sin él, verá la lógica utilizada para leer una unidad flash USB:
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);
}
}
}
En mi manifiesto tengo esas líneas, aunque no estoy seguro de que sean todas obligatorias ...
<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" />
Así que tengo este pequeño cable que conectas a tu teléfono que tiene un puerto USB en el otro lado donde puedes conectar una unidad flash, por ejemplo, como puedes ver aquí:
Cuando enchufo una unidad flash, recibo una notificación que dice:
Almacenamiento masivo USB conectado
Cuando abro una aplicación de explorador de archivos, veo que la unidad se encuentra en:
/ almacenamiento / UsbDriveA /
Y eso es genial, pero quiero saber cómo obtener acceso a la unidad flash en mi código. Obtener acceso a la tarjeta SD es bastante fácil:
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File (sdCard.getAbsolutePath() + "/MyFiles")
directory.mkdirs();
¿Pero cómo harías esto en el caso de la unidad flash? ¡Gracias por adelantado! :)
No puedo probar esto, no tengo un cable así, pero mi suposición sería que puedes pasar tu ruta de archivo directamente al constructor que se vería así:
File directory = new File("/storage/UsbDriveA/");
¿Has probado esto?