Warum mein DCIM-Ordner auf dem Computer leer ist, aber nicht auf dem Telefon [Duplikat]

Ich verwende ein HuaWeiNova-Gerät und habe versucht, mit aft-mtp-cli darauf zuzugreifen.

$ aft-mtp-cli
$ ls DCIM/

Ich habe hier Ordner aufgelistet:

|-photos
|-Camera
....

Als ich versuchte, meine Fotos im Camera/Ordner aufzulisten oder herunterzuladen, bekam ich nichts. Nur die leeren Ordner werden aufgelistet und die Ordner, die Dateien enthalten, werden überhaupt nicht angezeigt. CameraIch bin mir ziemlich sicher, dass meine Fotos in dem Ordner in meinem Handy gespeichert sind . Wie kommt es, dass ich mit meinem Computer nicht auf meine Fotos zugreifen kann?

Vielleicht sind Ihre Fotos auf der SD-Karte, aber Sie zeigen den internen Speicher an?

Antworten (1)

Für den Zugriff auf Ihr Android-Gerät über USB im Modus "Dateiübertragung" verwendet Ihr Computer das MTP-Protokoll. Dieses Protokoll ermöglicht das Auflisten und Lesen/Schreiben der Dateien von/auf Ihrem Gerät.

Was die meisten Leute nicht wissen, ist, dass das MTP-Protokoll den Inhalt des Dateisystems nicht anzeigt. Stattdessen verwendet es die Android MediaStore-Datenbank (eine SQLite-Datenbank), die vom Media Provider gefüllt wird , einem speziellen Daemon, der auf Android läuft (App-Paketname: com.android.providers.media).

Wenn Sie eine neue Datei/ein neues Verzeichnis erstellen oder etwas löschen, ohne diesen Daemon zu benachrichtigen, sind die Datenbank und das Dateisystem nicht mehr synchron und Sie können am Ende bereits gelöschte Dateien sehen oder vorhandene Dateien nicht sehen.

Sie können den Android MediaStore zwingen, seine Datenbank zu aktualisieren.

Es gibt drei Möglichkeiten, dies zu tun, wählen Sie einfach eine der folgenden aus:

  1. Starten Sie Ihr Telefon neu

  2. Verwenden Sie eine der zahlreichen Apps, die ein erneutes Scannen der SD-Karte erzwingen können

  3. Nur für Android 4-7: Verwenden Sie die folgende ADB-Befehlszeile ( Quelle ):

    adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard

Zurücksetzen der MediaStore-Datenbank

Manchmal kann es vorkommen, dass die MediaStore-Datenbank beschädigt ist. Öffnen Sie in einem solchen Fall die App-Infoseite von com.android.providers.media(aktivieren Sie "System-Apps anzeigen") und löschen Sie den Speicher dieser App. Starten Sie anschließend das Gerät neu.

Melden Sie sich nach dem Neustart mit Ihrem Passwort/PIN/Muster an, damit Sie den Launcher sehen können. Lassen Sie das Gerät dann in Ruhe, um die Mediendatenbank neu zu generieren. Dies kann je nach Anzahl der Mediendateien, die Sie auf Ihrem Telefon haben, einige Minuten oder Stunden dauern.

Wenn das Problem fehlender Dateien und Ordner dadurch immer noch nicht behoben wird, haben Sie möglicherweise eine beschädigte Mediendatei auf Ihrem Telefon, die ein weiteres Scannen der Mediendateien verhindert. In einem solchen Fall müssen Sie zunächst die beschädigte Datei identifizieren und entfernen oder reparieren.

Für Android 8 und höher würde dieser adb-Befehl nicht funktionieren. Siehe meine Antwort android.stackexchange.com/a/200785/96277 .
@Firelord Danke für die Info. Wenn ich aus Ihren Tests die richtige Schlussfolgerung ziehe, sollte ein Android 8 eine aktualisierte App, die diese Sendung mit einem FileObjekt sendet, funktionieren, oder? Und nach meiner Erfahrung mit Android 9 aktualisiert der MediaStore die Datenbank normalerweise automatisch, sodass ein Update nicht manuell ausgelöst werden muss.
Tut mir leid, ich kann diese Schlussfolgerung aus irgendeinem Grund nicht interpretieren, also kann ich sie nicht kommentieren. // Ich habe vor einiger Zeit von Ihnen erfahren, dass Android 9 die Datenbank automatisch aktualisiert, sodass kein manueller Auslöser erforderlich ist. Ich hatte meine Antwort dort aktualisiert, weil der Mediaserver von einer App gecrasht werden kann (durch ein Xposed-Modul passiert), sodass eine alternative Lösung benötigt wurde. Unter normalen Umständen müsste überhaupt niemand auf eine Befehlszeilenlösung zurückgreifen. Ihre Antwort ist also jetzt gut. :)
Nun, ein Neustart hat das unter Android 7 getan .
@Firelord, wie macht dieser Typ das in diesem Video youtube.com/watch?v=GitMOYdsA9I , wo er hier zeigt i.imgur.com/9gou0yT.png Windows Explorer zeigt viel mehr Ordner als nur DCIM und Bilder, ?!
@barlop Android-Geräte zeigen normalerweise alle Ordner an. Sogar moderne Android 11-Geräte tun dies. Wenn Ihr Gerät nicht angezeigt wird, stimmt etwas nicht. Löschen Sie den App-Cache von com.android.providers.media, starten Sie das Gerät neu und warten Sie einige Stunden (abhängig von der Anzahl Ihrer Mediendateien).