Warum erstellt Android automatisch "Shell-Ordner"? Kann ich die Shell-Ordner ändern?

Android erstellt diese Ordner automatisch im primären Speicher:

Alarms
DCIM
Documents
Download
Movie
Music
Notifications
Pictures
Podcasts
Ringtones

Sie sind die standardmäßigen "User Shell Folders" von Android (USF ist ein Konzept von Windows ). Es gibt kaum Dokumente oder Diskussionen im Internet. Die meisten Diskussionen drehen sich um MediaProvider (und Media Scanner).

Gibt es so etwas wie einen "Registrierungsschlüssel", der diese Ordner steuert? Kann ich den Standardspeicherort und -namen ändern?

Antworten (1)

Registrierungsschlüssel ist ein Windows-Konzept in Android. Diese Speicherorte werden wie folgt gehandhabt

/**
 * Standard directory in which to place files that have been downloaded by
 * the user.  Note that this is primarily a convention for the top-level
 * public directory, you are free to download files anywhere in your own
 * private directories.  Also note that though the constant here is
 * named DIRECTORY_DOWNLOADS (plural), the actual file name is non-plural for
 * backwards compatibility reasons.
 */
public static String DIRECTORY_DOWNLOADS = "Download";

Aus diesem Code-Snippet wird extrahiertandroid / platform / frameworks / base / android-<version-tag> / . / core / java / android / os / Environment.java

Wie Sie sehen können, gibt dies eine fest codierte statische Zeichenfolge zurück, und ich konnte keine Funktion finden, um sie im AOSP-Code zu ändern. Sie können diesen Speicherort also nicht für alle Anwendungen ändern, es sei denn, Sie ändern den Quellcode und erstellen Ihr eigenes benutzerdefiniertes Rom. Für Ihre Anwendung können Sie es natürlich auch in seinem privaten Ordner herunterladen.

Aber einige OEMs hatten diese Fähigkeit in ihrem Rom bereitgestellt. Siehe das .

Eine Problemumgehung für den Download-Ordner besteht darin, einen Download-Manager eines Drittanbieters wie den ES-Dateimanager herunterzuladen . Sie werden aufgefordert, den Download-Speicherort für die Datei auszuwählen.

Gut. Dachte, es gäbe so etwas /system/etc/usf.confwie Unix-Systeme.