Na forum było kiedyś trochę o programowaniu smartfonów więc mam nadzieje że może znajdzie się ktoś zorientowany w temacie. Otóż ostatnio w konsternacje wprawiła mnie następująca kwestia:
Na prośbę kogoś stworzyłem apke. Aplikacja miała umożliwić szybkie usunięcie (poprze kliknięcie na jej ikonę) zawartości folderu o określonej wcześniej lokalizacji na karcie SD. Tak wygląda instrukcja którą przekazałem temu komuś:
"Aplikacja usuwa folder o okreslonej lokalizacji (ustalanej podczas ostatniego otwierania apliakcji, brak ustalenia ścieżki podczas
ostatniego otwierania skutkuje brakiem usunięcia jakiegokolwiek pliku podczas kolejnego uruchamiania - tzn. ścieżka jest zapamiętana tylko do
"najbliższego" uruchomienia aplikacji.
1)Otwieramy aplikację poprzez kliknięcie w ikonę.
2)Wpisujemy ścieżkę do folderu w polu tekstowym dokładnie w takiej postaci:
np. Folder1/Folder2/Folder3
np. Folder1
itp
3)Naciskamy przycisk "zatwierdź"
4)Wychodzimy z aplikacji poprzez kliknięcie fizycznego przycisku "return" (ważne).
W przypadku naciśnięcia przycisku "home" aktywność aplikacji nie zostanie zamknięta(mimo że GUI aplikacji zostanie ukryte).
5)Kiedy chcemy usunąć określone wcześniej pliki, klikamy ikonę aplikacji. W tym momencie:
- pliki z określonej lokalizacji zostały usunięte
- zapamiętana ścieżka została wymazana"
Do usuwania folderu używam następującej metody:
język java
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
metoda ta jest wywoływana w pewnym miejscu programu, z grubsza to wygląda tak:
język java
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Szczególnie proszę zwrócić uwagę na .getExternalStorageDirectory();
W dokumentacji:
http://developer.android.com/reference/ ... nment.htmlmożemy przeczytać że "Gets the Android external storage directory." ale późnij czytamy "don't be confused by the word "external" here".
Bowiem external nie musi oznaczać tradycyjnej karty sd. Słowo to może obejmować również niechronioną część pamięci wbudowanej telefonu do której mamy dostęp z poziomu komputera. Skąd wiec mam wiedzieć czy używając .getAbsolutePath uzyskam
coś typu /mnt/sdcard czy może
uzyskam początek ścieżki prowadzący mnie do pamięci wbudowanej.
Myślę że tu właśnie jest pies pogrzebany bowiem ten ktoś twierdzi ,że aplikacja wymazała mu wszystkie dane z pamięci wewnętrznej.
Ja natomiast usilnie próbowałem zmusić tę aplikację do usunięcia mi pamięci wewnętrznej (na której są zapisane moje niektóre aplikacje) ,ale mimo to nadal działają czyli pamięć wewnętrzna pozostała nienaruszona.
Czy ktoś mi może wyjaśnić o co tu chodzi i co właściwie robi .getExternalStorageDirectory();? Mogę też przekazać katalog z całym projektem jeśli będzie trzeba.