Android 2.2 - Wie erkenne ich, ob ich auf der SD-Karte installiert bin oder nicht?

8

Ich schreibe eine Android App, die viele Mediendateien speichert. Sie sind nicht der Typ (und sind viel zu viele), um die Benutzerbenachrichtigung oder andere Medienverzeichnisse zu überladen, aber sie müssen auch vom Benutzer aktualisierbar sein, so dass ich sie nicht in die Ressourcen einfügen kann. Ich kann getExternalFilesDir verwenden, um einen Pfad auf der SD-Karte zu bekommen, aber ich möchte das nur tun, wenn die App selbst auf der SD-Karte installiert ist. Wenn die App intern installiert ist, möchte ich das Medium in den internen Speicher legen.

Wie kann ich feststellen, ob meine App im internen oder externen Speicher ausgeführt wird?

    
ProgrammerTim 23.10.2010, 15:16
quelle

3 Antworten

9

Sie können den PackageManager verwenden, um die ApplicationInfo abzurufen, und von dort aus die "Flags" für FLAG_EXTERNAL_STORAGE .

Hier ist ein kurzes Beispiel, das ich demonstrieren konnte:

%Vor%

Abhängig von Ihrer Situation (unabhängig davon, ob Sie alle "Medien" im Vordergrund haben oder der Benutzer sie bei der Verwendung der App erhält / erstellt), möchten Sie sie dennoch auf den externen Speicher legen. Eine große interne App ist von vielen Nutzern verpönt (und viele interne Medien würden es wahrscheinlich riesig machen).

    
Charlie Collins 23.10.2010 17:26
quelle
3

Hier ist mein Code zum Überprüfen, ob die App auf der SD-Karte installiert ist:

%Vor%     
peceps 21.06.2011 13:20
quelle
0

Um zu prüfen, ob die Anwendung auf der SD-Karte installiert ist oder nicht, tun Sie Folgendes:

%Vor%     
E Player Plus 29.03.2013 06:00
quelle