![]() |
Zugriffsprobleme unter Android (LineageOS) auf externe SD-Karte
Wir sind bei unserer App auf ein Problem gestoßen, wo wir aktuell nicht so recht wissen, ob das von Android allgemein, LineageOS oder unserer App selbst kommt.
Unsere App schreibt verschiedene Daten in das dafür vorgesehene Verzeichnis, z.B. [Speicher]/Android/com.embarcadero.Test. Beim Start der App kann man auswählen, ob auf die interne Karte geschrieben werden soll, oder falls vorhanden auf die externe SD-Karte. Wir haben hier jetzt einige Geräte mit LineageOS 7.1.2, bei denen der Zugriff auf das Verzeichnis in der SD-Karte nicht möglich ist, zumindest nicht mit normalen App-Berechtigungen. Auch bei CyanogenMod mit Android 5.1 war das nicht möglich. Bei meinem Sony-Smartphone mit dem Stock-Android 7.0 geht der Zugriff auf die externe Karte dagegen ohne Probleme. Hat jemand von euch zufällig eine App, die mit Delphi (oder auch mit anderen Sprachen) geschrieben wurde, bei dem dieses Problem auch auftritt? |
AW: Zugriffsprobleme unter Android (LineageOS) auf externe SD-Karte
Mal schnell mit der Schrotflinte in Richtung des Problems geschossen:
Ist die SD-Karte vielleicht als Erweiterung des internen Speichers konfiguriert und nicht als eigenständiger externer Speicher? Oder zeig doch mal den Code, der schreiben soll. Dann kann ich das auf meinen Android-Devices ausprobieren. |
AW: Zugriffsprobleme unter Android (LineageOS) auf externe SD-Karte
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, die externe SD ist normal als extern eingebunden.
Hier mal mein Testprojekt (funktioniert nur mit Android). |
AW: Zugriffsprobleme unter Android (LineageOS) auf externe SD-Karte
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe Dein Testprojekt auf einem LG L90 mit Android 5.0.2 ausgeführt:
Beim ersten Start der App kam nach dem Drücken des "Internal"- oder des "External"-Buttons jeweils zweimal eine Messagebox mit "OK". Beim zweiten Drücken der Buttons kommt eine Fehlermeldung und danach einmal die Meldung "OK". Die Fehlermeldungen habe ich als Screenprint angehangen. Sie kommen nach jedem Buttonclick reproduzierbar wieder und auch nach einem kompletten Neustart der App, dann sofort beim ersten Buttonclick. Lösche ich die Dateien "test.txt" und "testjava.txt" manuell über den Android-Dateimanager, werden sie beim nächsten Buttonclick wieder ohne Fehlermeldung angelegt. Das entspricht genau dem programmierten Ablauf:
Delphi-Quellcode:
Ich vermute mal, Dein Problem ist, dass schon das erste Anlegen der Datei(en) fehlschlägt. Somit wäre das Problem bei mir nicht reproduzierbar.
if jf.createNewFile then
ShowMessage('OK') else ShowMessage(s + ' konnte nicht erstellt werden!'); Andernfalls wäre das Problem ja nur, dass die Datei nach dem ersten Anlegen existiert und damit nicht nochmal angelegt werden kann. Schreib doch mal, wie sich Dein Testprojekt verhält, wenn das Problem bei Dir auftritt. Ist das Problem unabhängig vom Ordner, also tritt es auch auf, wenn Du in einen der "öffentlichen" Ordner wie "Downloads" oder "DCIM/Camera" (Fotos) speicherst? |
AW: Zugriffsprobleme unter Android (LineageOS) auf externe SD-Karte
Ja, das Problem bei mir ist (aber nur bei einem Gerät mit LineageOS), dass das erste Anlegen schon nicht funktioniert - weder Verzeichnis, noch Datei. Da die Dateien nicht gelöscht werden, können durchaus Fehler kommen, wenn das initiale Anlegen schon funktioniert.
|
AW: Zugriffsprobleme unter Android (LineageOS) auf externe SD-Karte
Ich hatte im ersten Post nicht wahrgenommen, dass Du Dich ausschließlich auf LineageOS beziehst. Da ich das nicht einsetze, kann ich dazu leider nichts sagen. Ich könnte hier zwar noch einen ganzen Zoo auch von älteren Android-Geräten testen, vermute aber mal, dass das nicht helfen würde.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz