Fotos en la carpeta DCIM visibles en el teléfono, no visibles a través de USB

Uso un RedMi 3S (Android 6.0.1), no rooteado y totalmente actualizado.

Tengo una gran cantidad de fotografías en mi carpeta DCIM/Cámara (en mi "Almacenamiento interno"). Son visibles a través de la aplicación Galería, Administrador de archivos e incluso visibles y accesibles a través de un servidor SFTP que configuré en el teléfono.

Sin embargo, si conecto el teléfono a una PC con un cable USB y elijo PTP o MTP (Archivos o Fotos respectivamente), no veo estas fotos. Veo la carpeta y una de las otras subcarpetas allí (llamada ) pero sospechosamente falta.DCIM/ScreenshotDCIM/Camera

¿Por qué sucede esto y cómo puedo transferir mis fotos a través de USB?

Notas:

  • A diferencia de la pregunta altamente relacionada , el problema aquí no es la base de datos del administrador de medios desactualizada; Acabo de realizar un "reescaneado" y no cambió nada.
MTP siempre apesta. Si tiene root, use UMS para una velocidad de transferencia de datos extrema para datos más grandes. O use adb pull/push.
@IrfanLatif: ¿Y viendo cómo no he rooteado el teléfono?...
adb pull no es una mala opción
@IrfanLatif: ¿Cuál sería el comando que debo escribir? Tengo adb instalado en Linux.
Habilite la depuración de USB en el teléfono desde Opciones de desarrollador. Conecte el teléfono a la PC y pase el emparejamiento de claves, luego ejecute: 'mkdir Camera; cámara de discos compactos; adb pull /sdcard/DCIM/Camera'. Toda la carpeta de la cámara se copiará a la PC. Sin embargo, adb no permite enumerar el contenido de una carpeta (como lo hace el comando ls o dir). MTP permite que se haga a través de Exploradores de archivos en Windows y muchas distribuciones de Linux.
El cliente MTP realiza diferentes solicitudes ( en.wikipedia.org/wiki/… ) a la aplicación "MTP Host" en Android, que funciona a través de una base de datos de archivos (MediaStore) creada por la aplicación "Media Storage" (/data/data/com.android. proveedores.media/bases de datos/externo.db). Si esta base de datos no se actualiza a medida que cambian los archivos, debe forzar su actualización. Elimine este archivo y ejecute alguna aplicación de escaneo de medios desde Play Store (es posible que reiniciar el teléfono no actualice toda la base de datos, aunque el receptor de transmisión MediaScannerReceiver se inicia en el arranque).
Los usuarios no root pueden eliminar este archivo borrando los datos de la aplicación "Media Storage". Pero tenga cuidado. También borrará internal.db, lo que hará que los tonos de llamada, etc., no estén disponibles. Una vez que se actualice la base de datos, MTP mostrará todo el contenido de la tarjeta SD interna en la PC.
Otras opciones incluyen la transferencia de datos a través de la red, mientras se conecta a Wi-Fi. SSH (SFTP, SCP, SSHFS) NFS, CIFS, FTP son todos los protocolos cliente-servidor que se pueden utilizar para este propósito. NFS, CIFS y SSHFS también permiten el montaje de los directorios compartidos para que los contenidos se puedan enumerar, copiar, mover, renombrar y eliminar fácilmente mediante los Exploradores de archivos de la GUI. Sin embargo, la velocidad de transferencia de datos a través de Wi-Fi es más lenta que la del cable USB, dependiendo de múltiples factores. Pero después de todo, no puede competir con UMS cuando se trata de velocidad y confiabilidad.
@einpoklum si su computadora es compatible con Wi-Fi, puede usar la aplicación KDEConnect (instale su contraparte en Linux; también funciona en escritorios que no son KDE, requiere algunas dependencias) desde Play Store en su dispositivo. Funciona bien y bastante todo el tiempo. Lo uso para recibir notificaciones del dispositivo y puedo acceder a mi dispositivo a través de él en Linux. De lo contrario, puede leer android.stackexchange.com/q/91900/96277
@Robert: Ver editar
Intente conectar su teléfono en estado desbloqueado.

Respuestas (1)

Como señala que está usando Linux, le recomiendo encarecidamente que eche un vistazo a adbfs . Puede usarlo para montar todo el dispositivo en su computadora y acceder a él como si fuera local. Lo uso desde hace años y estoy muy satisfecho con él (incluido el soporte).

  1. descargar/clonar el repositorio
  2. siga las instrucciones de instalación (en la página vinculada)
  3. cree usted mismo un "punto de montaje" (donde desea ver el dispositivo Android, por ejemplo /home/foobar/droid)
  4. conecte su dispositivo (depuración USB habilitada) a través de USB
  5. verificar con adb devicesque está ahí
  6. Móntalo:adbfs /home/foobar/droid
  7. acceda a todo lo que el usuario no root tiene acceso, incluidas las fotos, lectura/escritura
  8. cuando termine, desmonte:fusermount -u /home/foobar/droid

(por supuesto, una vez que esté funcionando, solo deberá repetir los pasos 5/6 a 8)

Cuando está montado, está disponible como cualquier sistema de archivos local, por lo que puede acceder a él desde el shell, usar un explorador de archivos gráfico o acceder a él con los programas que desee. Como señaló Irfan: MTP apesta (¿no es un producto de MS?), pero adbfs nunca me defraudó.

¿Ha ajustado su configuración en consecuencia? Puntero: ¿Cómo hago para que ADB detecte mi dispositivo en Linux?