Невозможно получить доступ к SDCard - PullRequest
1 голос
/ 09 сентября 2011

Я пытаюсь читать / записывать файлы на SDCard. Я пытался сделать это как на своем реальном телефоне, так и на эмуляторе в Eclipse. На обоих устройствах разрешение для / mnt / sdcard / или / sdcard - только "d --------", что, я думаю, означает, что я не могу читать или писать.

Я не могу открыть папку из «Представления файлов» в Eclipse, а также, когда я также пытаюсь «adb pull / mnt/sdcard/test.txt test.txt», я получаю, что удаленный объект не существует.

Приложение для Android имеет разрешение «WRITE_EXTERNAL_STORAGE».

Вот, например, что я делаю при запуске приложения;

        try {
            File root = Environment.getExternalStorageDirectory();
            Log.e(TAG,root.getAbsolutePath());
                File gpxfile = new File(root, "test.txt");
                FileWriter gpxwriter = new FileWriter(gpxfile);
                BufferedWriter out = new BufferedWriter(gpxwriter);
                out.write("Hello world");
                out.close();
        } catch (IOException e) {
            Log.e(TAG, "Could not write file " + e.getMessage());
        }

Я не получаю исключения. Есть идеи? Эта проблема убивает меня!

1 Ответ

1 голос
/ 09 сентября 2011

Это пример, где вы можете показывать изображение в SDCard с перкулярного URL, поэтому вам нужно разрешение, например ...

разрешение ::

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Java-файл ::

package com.sdcard;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;

public class SdcardActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        try{
            URL url = new URL ("http://www.coolpctips.com/wp-content/uploads/2011/05/top-30-android-games.jpg");
            InputStream input = url.openStream();
            try {
                OutputStream output = new FileOutputStream  (Environment.getExternalStorageDirectory()+"/top-30-android-games.jpg");
                int aReasonableSize = 1000;
                byte[] buffer = new byte[aReasonableSize];
                int bytesRead = 0;;
                try {
                    while ((bytesRead = input.read(buffer)) > 0) {
                        output.write(buffer, 0, bytesRead);
                    }
                } finally {
                    output.close();
                }
            } finally {
                input.close();
            }
            }catch (Exception e) {
                e.printStackTrace();
            }
        }

И иногда также возникает проблема с устройством, из-за которой пропало наше интернет-соединение или мы не можем найти sdcard

...