Chciałbym, aby moja aplikacja zarchiwizowała bazę danych aplikacji na karcie SD. W moim kodzie sprawdzam, czy katalog canWrite()
istnieje, a jeśli nie, wrzucam plik IOException
. W tym konkretnym przypadku próbuję skopiować plik db do katalogu głównego na karcie SD, ale rzuca plik IOException
. Jak mogę zmienić uprawnienia do folderu / pliku, aby móc w nim zapisywać?
80
WRITE_EXTERNAL_STORAGE
został wprowadzony w wersji 1.6, więc jeśli chcesz, aby był zgodny z przyszłością, musisz go uwzględnić w swojej aplikacji.Zasugerowana powyżej technika w odpowiedzi Dave'a jest z pewnością dobrą praktyką projektową i tak, ostatecznie wymagane uprawnienia muszą być ustawione w pliku AndroidManifest.xml, aby uzyskać dostęp do pamięci zewnętrznej.
Jednak większość (jeśli nie wszystkie, nie wiem) "opcji manifestu" można dodać w mono-sposób poprzez atrybuty klasy implementującej działanie (lub usługę).
Wtyczka Visual Studio Mono automatycznie generuje manifest, więc najlepiej nie modyfikować go ręcznie (jestem pewien, że istnieją przypadki, w których nie ma innej opcji).
Na przykład:
[Activity(Label="MonoDroid App", MainLauncher=true, Permission="android.permission.WRITE_EXTERNAL_STORAGE")] public class MonoActivity : Activity { protected override void OnCreate(Bundle bindle) { base.OnCreate(bindle); } }
źródło