2010-04-19 13 views
5

Jak mogę skopiować pliki do systemu plików (miejsce) w systemie Android? Jak mogę uzyskać do niego dostęp?Jak mogę skopiować pliki do systemu plików Androida?

+1

jest to pytanie programistyczne lub pytanie użytkownika? kopiujesz * z * twojego komputera? twoje urządzenie z Androidem? na kartę SD? czy twoja karta SD jest zamontowana, jeśli jest podłączony do komputera? –

+0

To jest pytanie programistyczne. Potrzebuję tylko ścieżki. Chcę umieścić kilka plików, aby użytkownik nie miał do nich dostępu. Myślę, że to najlepszy sposób na zrobienie tego. –

+0

Myślałem, że rozumiem twoje pytanie, dopóki nie przeczytam twojego komentarza. Czy próbujesz zapisać pliki w systemie plików (np. W kodzie działającym w Dalvik) lub czy próbujesz je wdrożyć (poprzez fizyczne połączenie z komputerem hosta)? –

Odpowiedz

1

Można użyć:

Environment.getExternalStorageDirectory() 

To daje /sdcard jeśli urządzenie posiada sdcard lub coś innego w innych przypadkach. Na przykład Archos.

+0

Wiem to ... ale nie o to prosiłem. –

0

Prawdopodobnie można ukryć swój plik w sdcard poprzedzając go z kropką (np .myfile)

+0

W tym przypadku użytkownik może podłączyć urządzenie do komputera, a następnie wyświetlić pliki. Czy mam rację? –

+0

Jeśli przegląda sdcard z okna Windows tak. Ale jeśli naprawdę nie chcesz, aby użytkownik bałaganił z plikiem, użyj zasobów lub surowego zasobu. Jedyną wadą jest to, że jest to tylko do odczytu. Może zamiast tego możesz użyć bazy danych? – Rorist

11

Kopiowanie plików z android do lokalnego pliku

adb pull /data/data/com.example.sample ./sample/ 

kopiowania do Android z lokalnym

adb push ./sample/ /sdcard/sample/ 
+0

+1 Możesz to również zrobić z aplikacji DDMS, jeśli wolisz klikać różne rzeczy, ale to tylko implementacja GUI tych poleceń. –

+0

Nie chcę kopiować do sdcard ... Chcę skopiować do katalogu systemu plików –

+0

Nie myślę, że piszesz bezpośrednio do katalogu systemu plików Android. jest to możliwe tylko programowo z aplikacji, nad którą pracujesz. Każda aplikacja otrzymuje chronioną przestrzeń wewnątrz/data/data/myApp, więc w ten sposób jedna aplikacja nie może pisać do innego folderu aplikacji. Cóż, jestem trochę nie na punkcie rozwoju Androida, więc mogę się mylić. – Raja

2

nie jestem pewien, czy to, o co prosisz, ale tu jest inna interpretacja pytanie:

Możesz umieszczać pliki w folderze assets w projekcie na komputerze programisty. Zostaną one dołączone do pliku apk, a następnie uzyskają do nich dostęp za pośrednictwem klasy AssetManager. Coś takiego w ramach usługi lub klasy działalności:

AssetManager am = getAssets(); 
InputStream is = am.open("filename"); 

Umożliwi to odczytanie zawartości tych plików. Nie wierzę, że możesz do nich napisać. Istnieją inne opcje, jeśli musisz czytać i zapisywać pliki w obszarze izolowanym pamięci masowej aplikacji. Odbywa się to przez wywołanie openFileOutput(). Należy jednak zauważyć, że użytkownik może zawsze uzyskać dostęp do plików na urządzeniu za pośrednictwem ddms, ale inne aplikacje nie będą miały dostępu do plików przechowywanych w obszarze izolowanym pamięci masowej aplikacji.

Edit podstawie Twojego komentarza, prawdopodobnie chcesz użyć

OutputStream out = openFileOutput("outfile"); 

zapisu do pliku z kodem. Ten kod musi zostać wywołany z poziomu Activity lub Service (coś, co rozszerza się o Context). Ten plik będzie przechowywany w systemie plików telefonu, a nie na sdcard. Pliki te nie będą dostępne dla przeciętnego użytkownika. Jeśli użytkownicy wiedzą, jak włączyć debugowanie USB, będą mogli uzyskać do nich dostęp i naprawdę nie da się tego obejść.

1

wziąłem trochę czasu na badania o plikach systemu Android wcześniejszych, ale prawie zawsze z Android-x86, i okazało się, że folder/układ wewnątrz Android jest tylko do odczytu,

jest to obraz o formacie jest SFS format, to jest format obrazu tylko do odczytu Linuksa, więc nie sądzę, aby można było skopiować coś w tym folderze. Nie jestem pewien co do zrootowanego Androida. Mam nadzieję, że ci to pomoże.

Powiązane problemy