2015-04-03 12 views
6

Udało mi się uruchomić moją aplikację w przeglądarce Chrome za pomocą spawarki. A po tym, jak udało mi się zidentyfikować, które pliki posiadają bazę danych sqlite i wspólne preferencje, udało mi się je skopiować, aby ładnie powielić, w jaki sposób aplikacja działa na moim telefonie.Skąd pochodzi funkcja getExternalFilesDir() w aplikacji działającej w przeglądarce Chrome?

W telefonie "moja aplikacja może robić zdjęcia, które przechowuje w ścieżce znalezionej za pomocą getExternalFilesDir (null). Byłoby miło móc je skopiować, aby były widoczne podczas korzystania z aplikacji przez Chrome . Ale szukając w okolicy, nie byłem w stanie ustalić, gdzie to jest.

Mogę zapisać plik (korzystając z eksportera bazy danych aplikacji i selektora plików) do miejsca, które pojawia się jako karta SD, ale nie ma pliku lub katalogu w katalogu mojej aplikacji w ~/.config/google-chrome/Default/Storage/ext, który się zmienia, gdy robię eksport wydaje się pasować.

Widzę nazwę eksportowanego pliku w def/File System/primary/p/Paths/000004.log, ale ponieważ jest to plik danych, nie daje mi żadnych wskazówek.

Ktoś wie, gdzie może być wirtualna karta SD (i tak externalFilesDir)?

+0

Mamy aplikację, która rozpakowuje zasoby podczas instalacji i przenosi je na sdcard. Te pliki (na przykład pliki JavaScript) są przemianowane na rzeczy takie jak 000035 (bez sufiksu) pod katalogiem ext (ext/p/03, jak sądzę), o którym wspomniałeś powyżej. Wygląda na to, że może jeden z plików ldb lub coś podrabia ścieżki. Czy próbowałeś grepping plików w katalogu ext? – user1978019

Odpowiedz

4

Domyślnie ARC przechowuje pliki pamięci zewnętrznej w systemie plików Chrome HTML5. Każda aplikacja otrzymuje własną instancję systemu plików.

Aby umieścić pliki na nim, możesz:

  1. (tylko na PC) uruchomić aplikację, należy odwiedzić "chrome: // skontrolować/# aplikacje" dla aplikacji i wpisz plugin.shell('adbd') Into the javascript konsoli dla tego. Następnie możesz użyć polecenia Android ADB adb push ..., aby przesłać dane.
  2. Możesz również dodać {"enableExternalDirectory": true} do metadanych aplikacji. Włączenie tej opcji oznacza, że ​​ARC poprosi o katalog, którego chcesz użyć dla zewnętrznego katalogu, i będziesz mógł wybrać prawdziwy katalog w swoim systemie do użycia.
+1

Numer 2 działa pięknie na moim komputerze z Linuksem i zapewnia mi niezły dostęp do wszystkich potrzebnych wierszy poleceń. Dzięki. –

Powiązane problemy