Internal external Speicher

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Internal external Speicher

    Hallo,
    habe folgendes Problem und kann es mir nicht erklären.
    Ich verändere nichts, bis auf das Handy, einmal S3 mini mit sd( schreibt aber auf internen Speicher) und einmal S6 ohne sd nur mit internen Speicher.
    Auf dem S3 läuft es wie gewünscht, die Datei wird gespeichert, auf dem S6 sagt er permission denied. Woran kann das liegen? Fehler ist in Zeile 14.

    Quellcode

    1. public void exportDB1(View v) {
    2. File database1 = getDatabasePath("shopping_list1.db");
    3. ShoppingMemoDbHelper1 ShoppingDbHelper1 = new ShoppingMemoDbHelper1(getApplicationContext());
    4. File exportDir = new File(Environment.getExternalStorageDirectory()+"/Download/","");
    5. if (!exportDir.exists()) {
    6. exportDir.mkdirs();
    7. }
    8. File file = new File(exportDir,"csvname.csv");
    9. try {
    10. file.createNewFile();
    11. CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
    12. SQLiteDatabase db = ShoppingDbHelper1.getReadableDatabase();
    13. Cursor curCSV = db.rawQuery("SELECT * FROM shopping_list1",null);
    14. csvWrite.writeNext(curCSV.getColumnNames());
    15. while (curCSV.moveToNext()) {
    16. //Which column you want to exprort
    17. String arrStr[] = {curCSV.getString(0),curCSV.getString(1),curCSV.getString(2),curCSV.getString(3)};
    18. csvWrite.writeNext(arrStr);
    19. }
    20. csvWrite.close();
    21. curCSV.close();
    Alles anzeigen
    Fehlermeldung: Fehler in 237 [tt
    30912-30912/com.example.josh.per E/MainActivity: Permission denied
    java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively0(Native Method)
    at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:280)
    at java.io.File.createNewFile(File.java:948)
    at com.example.josh.per.ENGRUN.exportDB1(ENGRUN.java:237)
    at java.lang.reflect.Method.invoke(Native Method)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
    at android.view.View.performClick(View.java:6199)
    at android.widget.TextView.performClick(TextView.java:11090)
    at android.view.View$PerformClick.run(View.java:23647)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6682)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
    ][/tt]
  • Richtig, man sollte den User um die Erlaubnis fragen um die Berechtigungzu erhalten. Dafür kannst du den Code in dem Link benutzen. Was machst du wenn ein User es nicht weiß wie er deine App die nötigen Berechtigungen giebt. Dann wird er sagen deine app geht nicht das ist bestimmt nicht in deinem Sinn.
    Ein Feedback auf Tipps ist auch schön. :P