Jump to content
Unity Insider Forum

In Android ist Ordner /storage/emulated/ leer! ​​😱​


Recommended Posts

Hi

Ich brauche eure Hilfe :)

Ich habe einen File Explorer programmiert, damit der User in Android einen Ordner auswählen kann.

Aber ich schaffe es einfach nicht in Android in den "normalen" Dateibereich zu gelangen. Der Bereich den wir alle kennen mit dem Internen Speicher, SD-Karte, Download-Ordner usw.

Alles funktioniert auf Windows perfekt.

Wenn ich mit einem Dateimanager in Android die Pfade der einzelnen Dateien anschaue, liegen sie in "/storage/emulated/0/", das scheint das Root Verzeichnis zu sein. Aber in meinem Unity-Browser ist der Ordner /storage/emulated/ leer!

Ich habe auch schon getestet, ob der Ordner vielleicht versteckt ist. Aber in Windows kann ich problemlos auf versteckte Ordner zugreifen.

Ich hab natürlich auch die benötigten Berechtigungen eingeholt (Permission.ExternalStorageRead, Permission.ExternalStorageWrite).

Habe es auch schon versucht im Emulator zu testen. In Android Studio konnte ich die App noch nicht installieren, weil es immer eine Fehlermeldung gibt und in Bluestack ist die App einfach schwarz und nix passiert.

Weiss jemand, was ich tun könnte, um auf Android im normalen Dateibereich zu browsen?

Schönen Abend wünsche ich allen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

Auf Android (iirc auf Linuxoiden generell) passiert da einiges mit Symlinks. Der Name "emulated" verrät schon, dass dieser Ordner gar nicht wirklich existiert. Stattdessen ist das ein Pfad, mit dem man zu irgendeinem Teil des Dateisystems kommt, der auswechselbar ist. Wenn dein File Browser diese Semantik nicht versteht, sondern einfach nur im Dateisystem nach diesem Pfad sucht, dann kommt er nicht weit.

Hier ein Artikel, den ich gerade dazu gefunden habe: https://yoodley.com/storage-emulated-0/

Wie du jetzt an das gesamte Dateiverzeichnis kommst, weiß ich nicht. Gibt aber bestimmt Anleitungen dafür. Denke daran, dass deine App nach der entsprechenden Berechtigung fragen muss, sonst gibt das Betriebssystem der App erstmal gar nix.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Erst mal danke für den Beitrag.

Ich habe nun Zugriff zum Dateisystem. Ich musste in der AndroidManifest.xml im Application-Tag noch folgendes ergänzen:

<application android:requestLegacyExternalStorage="true">

Ich kann nun auf das Dateisystem zugreifen, wenn ich den Pfad direkt anspreche (/storage/emulated/0/) aber der Pfad "/storage/emulated/" ist immer noch leer. Android mag das einfach nicht so, wenn man direkt im Filesystem rumwurstelt. Deshalb habe ich nach einer Lösung gesucht und nun das kostenlose "Runtime File Browser" entdeckt.

War in 5 Minuten implementiert und funktioniert perfekt. Jetzt habe ich einfach meinen eigenen File Browser mit diesem ersetzt.

Ich hatte noch das Problem, keine Zugriff auf die Files auf der SD-Karte zu haben. Da ist Android auch irgendwie empfindlich. Trotz den Berechtigungen. Android mag es einfach nicht, wenn man Dateien umbenennt oder verschiebt (ist ja das selbe). Deshalb habe ich das ganze jetzt so geändert, dass ich die Datei auch nicht mehr umbenennen muss (hab vorher an den Dateinamen eine ID gehängt, damit die Datei wieder erkannt werden kann, falls der User sie verschiebt).

Jetzt läuft alles gut 😃

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...