не писать на SDCard - PullRequest
       17

не писать на SDCard

2 голосов
/ 06 апреля 2011

Не могу заставить свое приложение записать на sdcard. Я пробовал несколько разных способов, и ни один из них не работает. Я видел несколько сообщений здесь на SO, которые имеют ту же проблему, и проблема не решена. Может кто-нибудь взглянуть на мой код и посмотреть, что не так?

У меня есть <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> в моем манифесте.

                       String inFileName = "/data/data/cpe495.smartapp/files/test.csv"; //TODO Use folder/filename
                          File inFile = new File(inFileName);
                          try{
                          FileInputStream fis = new FileInputStream(inFile);

                          String outFileName = Environment.getExternalStorageDirectory()+"/test.csv"; //TODO Use output filename
                          OutputStream output = new FileOutputStream(outFileName);

                          byte[] buffer = new byte[1024];
                          int length;
                          while ((length = fis.read(buffer))>0)
                            output.write(buffer, 0, length);

                          output.flush();
                          output.close();
                          fis.close();
                          } catch (Exception e) {
                              e.printStackTrace();
                          }   

04-06 00:17:14.961: WARN/System.err(279): java.io.FileNotFoundException: /mnt/sdcard/test.csv (Permission denied)
04-06 00:17:15.000: WARN/System.err(279):     at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
04-06 00:17:15.000: WARN/System.err(279):     at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
04-06 00:17:15.012: WARN/System.err(279):     at java.io.FileOutputStream.<init>(FileOutputStream.java:97)
04-06 00:17:15.022: WARN/System.err(279):     at java.io.FileOutputStream.<init>(FileOutputStream.java:168)
04-06 00:17:15.032: WARN/System.err(279):     at java.io.FileOutputStream.<init>(FileOutputStream.java:147)
04-06 00:17:15.032: WARN/System.err(279):     at cpe495.smartapp.SmartApp$8.onClick(SmartApp.java:165)
04-06 00:17:15.041: WARN/System.err(279):     at android.view.View.performClick(View.java:2408)
04-06 00:17:15.051: WARN/System.err(279):     at android.view.View$PerformClick.run(View.java:8816)
04-06 00:17:15.062: WARN/System.err(279):     at android.os.Handler.handleCallback(Handler.java:587)
04-06 00:17:15.062: WARN/System.err(279):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-06 00:17:15.072: WARN/System.err(279):     at android.os.Looper.loop(Looper.java:123)
04-06 00:17:15.072: WARN/System.err(279):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-06 00:17:15.081: WARN/System.err(279):     at java.lang.reflect.Method.invokeNative(Native Method)
04-06 00:17:15.091: WARN/System.err(279):     at java.lang.reflect.Method.invoke(Method.java:521)
04-06 00:17:15.091: WARN/System.err(279):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-06 00:17:15.101: WARN/System.err(279):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-06 00:17:15.101: WARN/System.err(279):     at dalvik.system.NativeStart.main(Native Method)

1 Ответ

2 голосов
/ 06 апреля 2011

Решением этой проблемы было добавление SD-карты в эмулятор. После добавления SD-карты в эмулятор все работало нормально.

Вот один из способов сделать это.

Другой способ - открыть список устройств в Eclipse, а затем создать новое виртуальное устройство. Во время настройки виртуального устройства должно появиться окно с опциями, которое спросит, хотите ли вы использовать SD-карту и какого размера вы хотите. Вот как я это сделал, и я не смог найти учебник для него в Интернете. Я случайно наткнулся на это, когда искал варианты.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...