Zgodnie z zachętą Sid, zamienię swój komentarz na odpowiedź - łącząc szczegóły z innych komentarzy:
Istnieją głównie dwa sposoby adresowania karty SD z poziomu aplikacji:
- ścieżka zakodowana na stałe (np.
/sdcard/funnyapp
) - przy użyciu interfejsu API systemu Android, tj.
getExternalStorageDirectory ( )
Chociaż 1. może się nie powieść, jeśli karta SDCard zostanie zamontowana w innym miejscu, 2. spowoduje, że aplikacja zapisze rzeczy na „pierwszej” karcie SD (na urządzeniach z wewnętrzną kartą SD, czyli wewnętrzną SDCard, na innych zewnętrznych). Ale oba przypadki są zgodne z faktem: jeśli aplikacja nie oferuje opcji konfiguracji, nic nie możesz zrobić, aby to zmienić. Android nie oferuje odpowiedniego ustawienia, a łącza symboliczne nie działają na kartach SDCARD (z powodu ograniczeń systemu plików).
To samo dotyczy pamięci używanej przez samą aplikację, ponieważ Sid napisał, że wskazuje dokumenty pomocy dla Androida (zobacz także dokumentację dla programistów na temat lokalizacji instalacji aplikacji). Chociaż w większości przypadków można przenieść aplikację za pomocą funkcji App2SD wbudowanej w Androida, programista może to zmienić, aby nie można było przenieść jego aplikacji.
Jeśli chodzi o komentarz Jana, to nie naprawdę działa. Wciąż małe wyjaśnienie, co najprawdopodobniej miał na myśli: używając „uprawnień roota”, możesz zmienić prawo własności do wszystkich plików i katalogów. Więc prawdopodobnie jego pomysł polegał na tym, aby wszystkie rzeczy na karcie SDCard należały do roota i były czytelne tylko dla innych. To nie zadziała z wielu powodów:
- To skomplikowałoby sprawę jeszcze bardziej (ponieważ nie można by pisać żadnego z nich bez wcześniejszego uzyskiwania uprawnień roota za każdym razem).
- Nie mogłeś tego zrobić na poziomie katalogu (np. robiąc to dla każdego katalogu z wyjątkiem katalogu o "wymyślnej nazwie" jak np. "MyOwnDocs", gdzie możesz przechowywać swoje rzeczy bez kłopotów z poprzedniego argumentu), ponieważ system plików na karcie (FAT) tego nie obsługuje.
- To mogłoby w jakiś sposób, gdybyś użył skryptu do ponownego zamontowania karty do odczytu i zapisu za każdym razem, gdy chcesz na niej pisać, i uczynił ją ponownie tylko do odczytu, gdy skończysz. Ale znowu, ta komplikacja najprawdopodobniej nie jest tego warta. Ponadto niektóre aplikacje mogą ulec awarii z kartą SD tylko do odczytu, ponieważ (z ważnych powodów) nie oczekują obecności karty SD, ale nie można jej zapisać.
TL; DR
Krótko mówiąc: jeśli aplikacji nie można skonfigurować w taki sposób, nie ma sposobu, aby tego dokonać (z wyjątkiem ponownego napisania tych aplikacji).