Zugriff SD Karte / API übergreifend

  • Hi Leute.

    Ich bin da heute auf ein nerviges Problem gestoßen, von dem ich aktuell nicht weiß, wie ich es lösen könnte, vielleicht hat hier ja jemand eine Idee?

    Es geht um den zugriff auf die SD Karte. Ich benutze dafür aktuell getExternalFilesDir - was die von google empfohlene Methode ist. Ich nutze Api level 13 - diese MUSS ich auch nutzen, weil sie admob verlangt.

    So - dieses Programm stürzt nun auf Android 2.1 Geräten sofort ab - warum? weil es die Methode getExternalFilesDir nicht gibt.

    Ich würde ja nun gerne einfach die alte Methode implementierten, wenn das API Level <= 7 ist .. nur gibt es diese Methode nicht in Api level 13 !!!!!

    Also wie genau soll ich nun vorgehen, damit ich auch unter android 2.1 auf die SD Karte zugreifen kann? Bzw. wie bekomme ich den Pfad ohne ihn hardcodieren zu müssen?

    Ich hoffe irgendjemand hat Vorschläge :)

  • Also die Freunde auf Stackoverflow, raten zum eigenen Zusammenbauen des Pfades


    Code
    String packageName = context.getPackageName();
    File externalPath = Environment.getExternalStorageDirectory();
    File appFiles = new File(externalPath.getAbsolutePath() +
                             "/Android/data/" + packageName + "/files");
  • Yep, ich hab dort auch gepostet, man schlägt vor eben den Pfad manuell zusammenzubauen .. eigentlich vermeide ich sowas gerne, aber wenn's nicht anders geth, dann werde ich das so machen.

  • Als Alternative würde ich Dir vorschlagen, schau doch mal in den SourceCode von Android 2.2 -> such die Methode und baue Sie bei dir ein,

    bzw da siehst du ja wie dort der Pfad zusammengebaut wird.

  • Der Beispielcode zu Taking Photos Simply enthält eine hübsche Lösung für das Problem mit getExternalStorageDir - wichtig sind hier auch die SDK-Einstellugen im Manifest.

    HTML
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="12" />

    Das Leben kann so hart sein, man muss nur richtig wollen!!!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!