Monthly Archives: Październik 2014

Dodawanie, modyfikacja pliku na karcie pamięci Android

W Androidzie utworzenie pliku poza domyślną lokalizacją, czyli katalogiem aplikacji którą tworzymy, nie jest prostym zadaniem. Kontrola uprawnień w Androidzie nie zezwala na działania, które wykraczają poza obręb piaskownicy. W tym artykule opisuję, w jaki sposób dodać uprawnienia i napisać kod, aby móc modyfikować/tworzyć pliki poza obrębem katalogu aplikacji, czyli np. na karcie pamięci. Przed rozpoczęciem programowania warto przeczytać artykuł o uprawnieniach w Androidzie. Niestety w języku angielskim, ale myślę, że da się również znaleźć polską wersję.

1. Pierwszym, czym się zajmiemy, to nadanie uprawnień na wykonywanie zmian w pamięci masowej urządzenia.
Uprawnienia nadaje się w pliku „AndroidManifest.xml”, który znajdziemy w katalogu „res” w projekcie. Należy dodać dwie linijki:

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

Które odpowiadają kolejno za zapis i odczyt w urządzeniach pamięci zewnętrznej.

Uprawnienia zapisu odczytu Android

Uprawnienia zapisu odczytu Android

2. Następnym krokiem jest dopisanie tego kodu do pliku java. W moim przypadku do pliku „MyActivity.java”:

String baseFolder;

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
    baseFolder = "/mnt/sdcard/";
}
else
{
    baseFolder = this.getFilesDir().getAbsolutePath();
}

String string = "Tekst do pliku";
File file = new File(baseFolder + "/","test.txt");

FileOutputStream fos = null;
try
{
    fos = new FileOutputStream(file);
    fos.write(string.getBytes());
    fos.close();
} catch (FileNotFoundException e)
{
    try {
        file.createNewFile();
        fos = new FileOutputStream(file);
        fos.write(string.getBytes());
        fos.close();
    } catch (IOException e1)
    {
        e1.printStackTrace();
    }
    e.printStackTrace();
} catch (IOException e)
{
    e.printStackTrace();
}
Kod aplikacji

Kod aplikacji

To wystarczy, aby tworzyć lub modyfikować plik tekstowy w dowolnym miejscu na urządzeniu.