German Wohin mit den Userdaten ?

GuenterL

Member
Licensed User
Longtime User
Wohin mit den User daten ?

Seit einigen Jahren vertreibe ich eine LapTimer APP (RCN-Timer) für den Motorsport. Diese funktioniert völlig
problemlos, aber seit einiger Zeit reklamieren immer mehr User, das sie keinen Zugriff mehr auf die UserDaten der App
haben.

Beim Starten der App lege ich folgende Struktur an:

B4X:
    ' init Files and folder
    
    SysDir     = RP.GetSafeDirDefaultExternal("")             'install config folder
    DataDir      = RP.GetSafeDirDefaultExternal("Data")             'install Files/Data folder
    HomeDir     = RP.GetSafeDirDefaultExternal(Today)             'tages verzeichnis
    GPSDir     = RP.GetSafeDirDefaultExternal(Today &"/Gps")         'install data Recorder dir


Die Folderstruktur der App sieht dann so aus:

    /Android/data/RCN-Timer/files/Data
    /Android/data/RCN-Timer/files/20240722
    /Android/data/RCN-Timer/files/20240722/Gps

Wo legt Ihr entstehende Userdaten ab ?

Macht es Sinn einen Folder manuell zu erstellen, und den dann als
Ablage zu benutzen?

Was ist mit den Dokument - Video - oder Bilder foldern ?
Sollte man die benutzen ??

Gruss Günter
 

b4x-de

Active Member
Licensed User
Longtime User
Du schreibst: "... User, dass sie keinen Zugriff mehr auf die UserDaten der App haben."

Was genau meinst du damit, dass die User keinen Zugriff mehr auf die Daten haben?

Wie greifen die User auf die Daten zu? Über deine App, eine Teilen-Funktion oder indem sie das Telefon über ein USB-Kabel mit dem PC verbinden? Kannst du dazu bitte mehr Informationen geben?

Viele Grüße
Thomas
 

GuenterL

Member
Licensed User
Longtime User
Du schreibst: "... User, dass sie keinen Zugriff mehr auf die UserDaten der App haben."

Was genau meinst du damit, dass die User keinen Zugriff mehr auf die Daten haben?

Wie greifen die User auf die Daten zu? Über deine App, eine Teilen-Funktion oder indem sie das Telefon über ein USB-Kabel mit dem PC verbinden? Kannst du dazu bitte mehr Informationen geben?

Viele Grüße
Thomas
Hallo Thomas
zunächst folgendes: Die App hat immer Zugriff und kann immer mit diesen Dateien arbeiten.

Diese Dateien beinhalten Konfigurationsdaten (zB für Rennstreckendefinitionen, Echtzeitddaten je Runde oder GPS logfiles) die von den Benutzern gerne
individuell bearbetet werden. Diese Dateien sind fast alle Ascii oder .xls Dateien die auf dem Telefon sofort editiert werden. Ein Umweg über den PC ist nicht vorgesehen.

Und da tritt nun das Problem auf: In alten Android Versionen (ab 4.4) liess sich jede Datei einfach über einem Dateimanager öffnen und so auch verändern.
Ab Android 10 lassen sich aber die Dateien nicht mehr aufrufen, da die Dateimanager in der Struktur nur noch vollen zugriff haben, wenn man Administrator ist.
Ganz schlim: Die neusten Xiaomi Redmi 12 und höher lassen selbst mich nicht mehr hinter //Android/data zu schauen. In dem Fall gehe ich vom
Pc mit FTP auf's HAndy, was interessanterweise wieder geht, ich aber keinem Anwender zumuten möchte

Deshalb war meine Idee, diese Daten in einem für den einfachen Benutzer "offenen" Raum zu verlegen, auf die er dann direkt zugreifen kann.
(zB in "Dokumente-" oder "Download-Folder"

Die Frage ist einfach, wie kann ich diese Folder ansprechen bzw dort meine DAten ablegen ?? Die Folder die über "RP.GetSafeDirDefaultExternal" erstellt
werden sind mir in der Struktur einfach zu tief.

Gruss Günter
 

BlueVision

Active Member
Licensed User
Longtime User
Hallo Günther, willkommen in der Welt der hilfreichen Segnungen modernerer Android-Versionen. Ich habe es aufgegeben mich mit dem von Google fabrizierten Schwachsinn weiter herumzuärgern und beschäftige mich lieber mit B4J, das läuft nur leider nicht auf einem Smartphone (genau wegen dieser unsäglichen Beschränkungen durch Google auf dem eigenen Gerät, Werbung kommt komischerweise immer an).

Bei neueren Android-Versionen ist für Apps kein Zugriff mehr auf den eigenen Installationsordner (man parkt dort ja gern ein "DATA"-Verzeichnis) oder den Download-Ordner im Root mehr möglich. Laut Google's fadenscheiniger Begründung sprechen Sicherheitsgründe dagegen...

Variante 1: Suche mal hier im Forum nach Android 13/14 und einem Verfahren, mit dem der Benutzer selbst einen sicheren Downloadordner festlegen kann, das sollte funktionieren denke ich. Dann hat der Handybenutzer zumindest für diesen Ordner in Verbindung mit Deiner App alle Rechte und kann auf die Daten zugreifen. Wähle einen Ordner, der nicht allzu versteckt ist.
Ich weiß leider nicht mehr genau, wie sich das Verfahren nennt. Oder suche mal in den Systemspezifikationen bei Google selbst, was die neueren Betriebssysteme betrifft. Diesen Weg musst Du leider gehen. Ein über einen Filemanager gewährter Zugriff auf irgendeinen Order ist leider auch nicht aussagefähig in der Art, dass dieser dann auch mit Deiner eigenen App funktioniert. Vielen verbreiteten Filemanagern gewährt Google Sonderrechte. Mit denen verdient man ja auch Geld...

Variante 2: Ein anderer Weg wäre, die APP im Manifest auf einen APK-Level zu begrenzen. Mit APK 29 (ich glaube das ist Android 10) sollte noch alles funktionieren. Google wird aber solch eine App nicht mehr im Playstore akzeptieren, wenn dies Dein Distributionsweg für die App ist. Es gibt mittlerweile sogar Smartphone-Hersteller, die die App über eine Modifikation des Betriebssystems in ähnlicher Weise blocken, wenn sie nicht einen bestimmten APK-Level bedient.

Variante 3: Schicke die Daten in die Google-Cloud, garantiert der absolut beste und vor allem völlig sichere Weg... (das war jetzt nicht mein Ernst)

Favorisieren würde ich auf jeden Fall Variante 1, was zwar einen ziemlichen Umbau Deiner App bedeutet, sie aber zukunftssicher macht (zumindest bis sich Google dann wieder mit der nächsten APK neue Schikanen ausdenkt).

In jedem Fall dürfte ein Ordner unter ANDROID/DATA aber nicht mehr erreichbar sein. (wie in Deinem Code weiter oben)

Beginne hier

Gruß aus Berlin, BV
 
Last edited:

GuenterL

Member
Licensed User
Longtime User
Hallo BlueVision

Da sprichts du viele Wahrheiten an. Es ist leider so, und man muss damit leben.
Da ich aber das ganze mehr als Hobby sehen und ich schon vor über 3 Jahren beim Google Store
ausgestiegen bin, tendiere ich zu einer Kombination aus "Handgebauter" Folderstruktur und
einer APK Begrenzung auf ein maximales Level.

Ich glaube, damit können auch die meisten User leben, da denen erfahrungsgemäß Google Restriktionen völlig Wursch sind,
hauptsache es funktioniert.

Danke für die Vorschläge.

Gruss Günter
 

BlueVision

Active Member
Licensed User
Longtime User
Absolut, den Weg gehe ich auch. Meine Apps habe ich auch alle aus dem Store genommen.
Wer hat schon Lust laufend 10000 Zeilen funktionierenden Code umzuschreiben und zu debuggen, nur um nach deren Pfeife zu tanzen...
Vielleicht merkt Google ja irgendwann einmal was, glaube aber eher nicht. Die Entwickler scheinen momentan scharenweise auf andere Plattformen zu flüchten oder die Sache gleich ganz aufzugeben. Dann gibts dort irgendwann nur noch hunderte von hochwertigen Apps, wie "Hellste Handy-Taschenlampe der Welt" usw.
Es wird Zeit für ein völlig neues Betriebssystem für Mobiltelefone...

Lass Dich nicht entmutigen. Die Nutzer halten zu Dir. Musst aber aufpassen bei bestimmten neueren Smartphones. Manche Hersteller springen auf den Zug von Google auf und dann schießt es aus dieser Ecke. Mit den Nutzern Deiner App kommunizieren, die wissen sie zu schätzen...

Gruß Andi
 
Top