In meiner App erstelle ich Dateien, die im Downloads-Verzeichnis der Geräte gespeichert sind. Alle meine Benutzer sind mit diesem Mechanismus glücklich ... außer denen, die ein Samsung Galaxy Note verwenden.
Es ist schwer zu debuggen, ohne ein solches Gerät zu besitzen. In meinem Code verwende ich
%Vor%um den Pfad für das Zielverzeichnis zu finden. Auf dem Galaxy Note ist der zurückgegebene Pfad "/ storage / sdcard0 / Download". Allerdings wird auf dem lokalen Dateisystem Verzeichnis in Kleinbuchstaben geschrieben ("Download") und die von meiner App erstellten Dateien sind offensichtlich nicht im lokalen Dateiverzeichnis vorhanden. Zumindest beschweren sich meine Nutzer darüber. Ich gehe davon aus, dass das Problem mit dem Unterschied zwischen Groß- und Kleinschreibung im Pfad zusammenhängt.
Hat jemand eine Idee, warum das auf allen Geräten außer dem Galaxy Note funktioniert?
Danke!
Es gibt keine Garantie, dass der von getExternalStoragePublicDirectory()
zurückgegebene Standort tatsächlich existiert. Möglicherweise ist Ihre erste App ein bestimmtes dieser Verzeichnisse. Daher ist es Ihre Aufgabe, mkdirs()
an diesem Ort auf allen Geräten aufzurufen, nicht nur auf diesem.
Darüber hinaus, warum jemand anderes (Samsung oder eine andere Drittanbieteranwendung) ein kleines download
-Verzeichnis erstellt, können Sie nur herausfinden, wer dieses Verzeichnis erstellt hat, und dann den Entwickler kontaktieren . Dies ist wahrscheinlich keine lohnende Investition in der Zeit.
Solange Sie mkdirs()
aufrufen, um Download
zu erstellen, ist es egal, welche anderen Verzeichnisse möglicherweise vorhanden sind. Wenn Sie mögliche Kollisionen wie diese erkennen und den Benutzer warnen möchten, könnten Sie das tun, obwohl ich keine Ahnung habe, ob sich das lohnt.