zte vid_1f3a rev_0233 pid_1002 oem mi_01 manager instalar controladores android usb-drive nexus-4 mtp

android - vid_1f3a - Nexus 4 no muestra archivos a través de MTP



usb/vid_1f3a&pid_1002&rev_0233&mi_01 (12)

De la documentación here , necesitas llamar a MediaScannerConnection.scanFile:

// Tell the media scanner about the new file so that it is // immediately available to the user. MediaScannerConnection.scanFile(this, new String[] { file.toString() }, null, new MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { Log.i("ExternalStorage", "Scanned " + path + ":"); Log.i("ExternalStorage", "-> uri=" + uri); } });

Intento simplemente escribir un archivo XML simple en la tarjeta SD y noté que mi Nexus 4 lo hace, pero no se puede ver a través del protocolo MTP con Windows 7.

código:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); CustomerQueryRqType customerQueryRequest = new CustomerQueryRqType(); Serializer serializer = new Persister(); File myFile = new File(Environment.getExternalStorageDirectory() + "/customerQueryRequest.xml"); try { boolean created = myFile.createNewFile(); serializer.write(customerQueryRequest, myFile); } catch (Exception e) { e.printStackTrace(); } }

Puedo ver el archivo en el teléfono con Astro File Manager:

pero Windows no lo ve ...

adb shell en el directorio muestra:

ls -l drwxrwxr-x root sdcard_rw 1970-01-16 20:51 Alarms drwxrwxr-x root sdcard_rw 1970-01-16 20:51 Android drwxrwxr-x root sdcard_rw 2012-11-21 19:30 DCIM drwxrwxr-x root sdcard_rw 1970-01-16 20:51 Download drwxrwxr-x root sdcard_rw 1970-01-16 20:51 Movies drwxrwxr-x root sdcard_rw 1970-01-16 20:51 Music drwxrwxr-x root sdcard_rw 1970-01-16 20:51 Notifications drwxrwxr-x root sdcard_rw 2012-11-19 12:06 Pictures drwxrwxr-x root sdcard_rw 1970-01-16 20:51 Podcasts drwxrwxr-x root sdcard_rw 2012-11-19 13:22 Ringtones drwxrwxr-x root sdcard_rw 2012-11-19 14:33 bluetooth -rw-rw-r-- root sdcard_rw 79 2012-12-05 22:26 customerQueryRequest.xml drwxrwxr-x root sdcard_rw 2012-11-20 02:50 data -rw-rw-r-- root sdcard_rw 11394 2012-11-19 13:54 eightpen_custom_gestures drwxrwxr-x root sdcard_rw 2012-11-19 13:17 media

¿Qué está pasando con mi Nexus 4? ¿Por qué está ocultando mis cosas de Windows?


Después de pasar horas en este tema lo resolví así:

private void rescanFolder(String dest) { // Scan files only (not folders); File[] files = new File(dest).listFiles(new FileFilter() { @Override public boolean accept(File pathname) { return pathname.isFile(); } }); String[] paths = new String[files.length]; for (int co=0; co< files.length; co++) paths[co] = files[co].getAbsolutePath(); MediaScannerConnection.scanFile(activity, paths, null, null); // and now recursively scan subfolders files = new File(dest).listFiles(new FileFilter() { @Override public boolean accept(File pathname) { return pathname.isDirectory(); } }); for (int co=0; co<files.length; co++) rescanFolder(files[co].getAbsolutePath()); }

Lo que pasa es que tienes que escanear solo los archivos (no las carpetas) y luego repetir de forma recursiva para cada fubfolder

EDITAR Además, si no quiere que se agreguen imágenes a su álbum de fotos (pero solo sus contenidos aparecen sobre el protocolo mtp), recuerde colocar un archivo .nomedia vacío en su carpeta antes de volver a escanearlo, así:

new File(myFolder + File.separator + ".nomedia").createNewFile(); rescanFolder(myFolder);


El código simple propuesto para preguntar ¿Cómo puedo actualizar MediaStore en Android? realiza la actualización necesaria de MediaStore, si se llama después de que coloque un archivo en el almacenamiento externo. El contenido de mi Nexus 4 se actualiza al instante en el Explorador de archivos de Windows 7.


En Xperia Z, el código siguiente funcionaba bien:

String screenShotFile = "...."; activity.sendBroadcast(new Intent( Intent.ACTION_MEDIA_MOUNTED, Uri .fromFile(screenShotFile)));

para 4.4+ uso:

activity.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(screenShotFile)));

(Desafortunadamente no recuerdo si lo he probado lo suficientemente bien)

http://commonsware.com/blog/2013/11/06/android-4p4-permission-regressions.html


La mejor solución que encontré para el error mencionado en la respuesta aceptada es copiar datos del sistema operativo Android en otra máquina / servidor (Linux, MacOS, Windows) utilizando SSH.

  • Asegúrese de que el dispositivo (Android) y la máquina (donde desea copiar los datos) sean accesibles por IP o nombre de host, por ejemplo conectándolos a la misma red wifi.

Opcional y recomendado

  • Conecte el dispositivo Android usando el anclaje a red USB. Esto garantiza una velocidad rápida debido a la conexión por cable y garantiza que ambas direcciones IP sean visibles entre sí porque ambas están en la misma red.

En el dispositivo Android

  • Instale un servidor SSH. SSHelper funcionaba como un encanto
  • Ejecute SSHelper y vaya a la pestaña de configuración para obtener la dirección IP, el puerto y la contraseña. En el siguiente ejemplo, son 192.168.1.5, 2222 y ''admin''.
  • La contraseña predeterminada es admin pero si decide cambiarla, presione el botón "Reiniciar servidor con nuevos valores" después de cambiarlo

En la máquina

  • Instala rsync. Si utiliza Ubuntu, ya está instalado por defecto.
  • Abra un shell y escriba el siguiente comando. Cambie la dirección IP y el puerto a sus valores

rsync -avzhP --inplace --info=progress2 -e ''ssh -p 2222'' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/

  • obtendrá el siguiente mensaje, ingrese su contraseña

SSHelper Version 8.5 Copyright 2014, P. Lutus Default password is "admin" (recommend: change it) [email protected]''s password: admin receiving incremental file list

Las otras sugerencias no funcionaron para mí:

  • El dispositivo no admite el uso del modo de almacenamiento USB en lugar de MTP (como muchos otros dispositivos más nuevos).
  • No había ninguna opción en mi sistema operativo (Android 6.0.1) para borrar los datos de la aplicación "Almacenamiento multimedia".
  • Otros métodos para compartir archivos a través de la red tenían sus inconvenientes. FTP no garantiza la integridad de los archivos. Si se corta la conexión, sobrescribe u omite todos los archivos, por lo que uno de los archivos puede estar incompleto. Otros protocolos pueden ser difíciles de instalar y otras aplicaciones pueden usar protocolos propietarios.

Las respuestas anteriores están bien para crear el archivo. Si luego elimina el archivo y desea que ese cambio también se refleje, puede hacer uno de los siguientes; primero cubramos dos soluciones que parecen funcionar, pero que causarán problemas en algunos dispositivos. El primero es escanear el archivo eliminado:

context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));

Esto funciona en muchos dispositivos para archivos eliminados, pero en algunos dispositivos hará que se cree un nuevo archivo de 0 bytes, que probablemente no sea el que usted desea. En ese caso, si está ejecutando <4.4 KitKat, puede hacer esto:

context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.fromFile(folder)));

Donde carpeta es igual a file.getParentFile (). Desafortunadamente, en KitKat 4.4 y versiones superiores, esto provocará que se genere una SecurityException, por lo que para esos dispositivos, puede intentar eliminar directamente desde Media Store:

final Uri externalFilesUri = Files.getContentUri("external"); context.getContentResolver().delete(externalFilesUri, Files.FileColumns.DATA + "=?", new String[] {file.getAbsolutePath()});

He probado este como una solución para que ACTION_MEDIA_MOUNTED no funcione en KitKat, y funciona en mis pruebas en el Nexus 5.


Necesitaba crear un directorio y copiar algunos archivos de muestra para mi aplicación. Después de muchos experimentos e investigaciones, el siguiente procedimiento funcionó perfectamente para mí:

1) Directorio creado usando File.mkdir ().

2) Copió archivos en el directorio y ejecuta MediaScanner en cada archivo.

MediaScannerConnection.scanFile(context, new String[]{file.getAbsolutePath()}, null, null);

3) Ejecute MediaScanner en el directorio.

MediaScannerConnection.scanFile(context, new String[]{directory.getAbsolutePath()}, null, null);

Resultado: los archivos y el directorio aparecen instantáneamente en la PC a través de MTP.


Parece ser un problema conocido que afecta el acceso a archivos USB de Android a través de MTP . El caché MTP se desactualiza hasta que se reinicia el teléfono.

Una workaround es:

  • Borre los datos de la aplicación "Almacenamiento multimedia"
  • Utilice el SDrescan o el escáner SD (también funciona en Android 4.4 / 5, disponible en F-Droid ) para forzar una actualización

O simplemente evite usar el USB en absoluto. El problema no afecta a otros métodos de acceso a los archivos. Por ejemplo, prueba con AirDroid para transferir archivos.

Nota: Esto no funciona para Android 5.0.2: después de borrar "Media Storage" y usar un SD Rescanner, las carpetas aparecen en Windows 7 como archivos 4K no ejecutables. La única solución en ese punto es borrar nuevamente Media Storage y reiniciar el dispositivo



Recientemente me enfrenté con el mismo problema, pero algunas investigaciones adicionales ayudaron a encontrar archivos ocultos. Parece que Google ha realizado algunos cambios en la estructura de almacenamiento. Todos estos archivos se movieron a otra carpeta This Computer/HTC One/Internal Storage/storage/emulated/0 . Pero es extraño que no todos los archivos se movieron.

Android 4.4.2


Tuve un problema similar con mi OneplusOne:

Después de la actualización del software (a 6.0.1), no pude ver las imágenes de mi cámara cuando me conecté a la computadora (PTP y MTP). SDRescan y SDscanner de la aplicación no tuvieron ningún efecto.

Mi solución fue copiar todas las imágenes de DCIM a otra carpeta usando el terminal o cualquier archivo de la aplicación Explorer en el teléfono. Cuando me conecté a la computadora, pude ver los archivos copiados. Los moví a mi computadora y borré la carpeta de mi cámara. No hay solución permanente, pero me solucionó el problema al menos hasta que haga la siguiente copia de seguridad. = D


aviso / almacenamiento / emulado. Android 4.2 tiene algunas cosas emuladas funky por acceso a la aplicación / usuario pasando, por ejemplo, una / sdcard / por cada usuario. Intente mover el archivo a / sdcard / en lugar de la tarjeta SD emulada que se muestra.