Kann ich das verschieben von App Daten auf die SD Karte verhindern?

  • 5 Antworten
  • Neuster Beitrag
toschu

toschu

Ambitioniertes Mitglied
Threadstarter
Hi,

mir ist aufgefallen, dass man meine App bzw. deren Daten auf manchen Geräten auf die SD Karte verschieben kann. Ich dachte das wäre gar nicht möglich aber bei älteren Geräten oder manchen Herstellern ist das wohl möglich. Auf meinen neuen Geräten geht das nicht. Da wird mir diese Option gar nicht angeboten.

Nun kommt es aber wenn man die App verschiebt zu Problemen bei den neuen Update. Inhalte verschwinden weil, wie ich vermute, ja Android auf den internen Speicher aktualisiert und dann auch dort wieder startet. So sind natürlich die Inhalte der alten Version der App auf der SD Karte aber nach dem Update zeigt die App auf den internen Speicher der natürlich leer ist.

Das ist ein Problem. Kann ich also grundsätzlich verhindern, dass man meine App bzw. deren Daten auf eine SD Karte verschieben kann?
 
swa00

swa00

Moderator
Teammitglied
Hallo toschu,

dein Beitrag ist im Entwicklerbereich für Programmierung gelandet ...

Könntest du bitte ein paar erweiterte Angaben zu deinem System / Smartphone machen , damit wir Diesen
in den richtigen Bereich verschieben können .
 
toschu

toschu

Ambitioniertes Mitglied
Threadstarter
Hier wollte ich eigentlich auch hin :). Da ich ja gerne wüsste ob ich in meiner App aktiv verhindern kann dass man diese auf eine SD Karte verschieben kann? Also App seitig so dass Leute die meine App installieren nicht die oben angesprochenen Problemen bei Updates bekommen.
 
Zuletzt bearbeitet:
swa00

swa00

Moderator
Teammitglied
Ahhhhh , jetzt bekommt das Ganze einen Sinn :)

DEINE App - alles klar :)

Zum Thema :
Ob man es verhindern kann, kann ich nicht beantworten - die Suche danach habe ich irgendwann mal aufgegeben .

Ich habe mir allerdings einen Workaround erstellt, der die Appdaten immer auf dem Internen lässt und auch Update noch mit
abdeckt. (Also weg von /data/Android/packagemane/files)

Ich lege mir einen Pfad eine Wurzel unterhalb des Packages an.

Code:
 APPLICATION_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/mycompany/" + APPNAME;
      File DIR = new File(APPLICATION_PATH);
      DIR.mkdirs();
Somit ist egal , wo die App dann schlussendlich liegt und wann sie ein Update bekommt.
(Funktioniert allerdings nicht mit dem Hidden cache)
 
Zuletzt bearbeitet:
toschu

toschu

Ambitioniertes Mitglied
Threadstarter
Das ist natürlich ein Ansatz. Aber würde er diesen Ordner dann nicht auch verschieben?

Weil ich aktuell das Problem habe, das jemand der die App verschoben hat und dann ein Update macht halt keine Daten mehr in der App hat. Sprich Android verschiebt auf extern und Update geht auf intern wo ja nix an Daten liegt.

Was mich wundert ist ja warum es auf manchen Geräten einfach so geht also die App auf die SD zu speichern und auf anderen Geräten eben nicht. Liegt das an dem Herstellern oder eher an den älteren Android Versionen oder an Mr. Zufall :)?
 
swa00

swa00

Moderator
Teammitglied
Der "Verschiebe-Mechanismuss" unterstützt nur Standards e.g. getFilesDirectory....... (), Shared etc

Er durchforstet NICHT deinen SourceCode nach deinem Ziel - Da ist der Punkt.
Und DEIN Sourcecode sucht immer feste im Internen nach dem Beispiel oben.
Da er nicht Standard ist , wird dein angelegter Pfad als "unknown" belassen.

Wie aber schon anfangs erwähnt : Du solltest dein eigenes Safe-Management nehmen
(Also keine Shared, aber dafür SqLite,xml usw.)

Nachtrag :
App install location  |  Android Developers
 
Zuletzt bearbeitet:
Oben Unten