Zugriff auf die "echte" SD-Karte ?

  • Antworten:46
  • OffenNicht stickyNicht beantwortet
Gelöschter Account
  • Forum-Beiträge: 694

19.01.2013 11:34:28 via Website

Das wäre mir persönlich zu viel Gefrickel.

Ich würde mich eher auf die drei notwendigen und offiziellen Android Methoden und deren Interpretation verlassen - die machen es auf jeden Fall richtig. Hier gibt es den Code zur Environment Klasse. Guck mal zum Beispiel in die isExternalStorageEmulated Methode. Die nutzen den MountService. Wenn der es nicht weiß ...

So ist der korrekte Ablauf:

* API kleiner 9 --> Environment.getExternalStorageState verwenden und interpretieren.

* API kleiner 11 --> Environment.isExternalStorageRemovable sowie Environment.getExternalStorageState verwenden und interpretieren.

* API größer 10 --> Environment.isExternalStorageEmulated sowie Environment.isExternalStorageRemovable sowie Environment.getExternalStorageState verwenden und interpretieren.

Das ist eine einfache Matrix die im Grunde genommen in Deinem Fall nur erfordert das Environment.isExternalStorageEmulated==false, Environment.isExternalStorageRemovable==true ist und den Status Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))==true besitzt. Hier ein Beispiel für Deinen Fall, ist blind aus dem Ärmel geschüttelt, wenn Du Fehler findest darfst Du sie behalten:

1boolean emulated = false;
2boolean removable = true;
3boolean mounted = false;
4
5if (Build.VERSION.SDK_INT >= 9) {
6emulated = Environment.isExternalStorageEmulated();
7}
8
9if (Build.VERSION.SDK_INT >= 11) {
10removable = Environment.isExternalStorageRemovable();
11}
12
13mounted = (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))) ? true : false;
14
15if (removable && mounted && !emulated) {
16// jetzt Du
17}
  • Forum-Beiträge: 17

19.01.2013 12:36:59 via Website

ja, das ist es ja, diese Abfrage ergibt auf meinem Samsung removable = false und emulated = true
obwohl eine echte SD-Karte drin ist (die ja removable = true und emulated = false wär?)

werde mir mal deinen Link reinziehen, sieht gut aus, danke

— geändert am 19.01.2013 12:42:08

  • Forum-Beiträge: 17

20.01.2013 09:12:11 via Website

meine "Übersetzung" : deine App kann nicht auf die extKarte zugreifen, weil sie nicht Teil des external storage ist.
sie ist nur für eigene Mediadaten, die das System benutzt, gedacht.. ?

meinst du dieser Weg wäre eine Alternative?
https://github.com/jow-ct/Environment2

langsam überfordert mich das alles :grin:
  • Forum-Beiträge: 17

22.01.2013 14:57:37 via Website

Hab's jetzt kapiert :wacko:

>>Bis Android 4.1 gibt es keinen offiziellen Weg, drauf zuzugreifen. Daher liegt bei diesen Smartphones die SD-Karte für Apps weitgehend brach<<

Meine App läuft aber auf 4.0 :O

hab aber ne Menge dazugelernt, danke!