Android SDK - открыть любой файл, который я хочу? - PullRequest
0 голосов
/ 27 февраля 2012

Согласно Документации по разработке Android, вы не можете просто открыть любой файл, который вам нужен ( "Открыть личный файл, связанный с пакетом приложения этого контекста, для записи." ).

Что, однако, когда я хочу, чтобы мое приложение считывало файлы, созданные другими приложениями? Допустим, у меня есть файл в /data/app_1/hello.txt, но мое приложение не имеет к нему никакого отношения, потому что мое приложение называется app_2, как я все еще смогу открыть этот файл (и записать обратно в него)?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Вы не можете вообще, Приложения на Android изолированы и разрознены.Приложение может только писать и читать свои собственные файлы.

Существуют исключения: как указано в документации : «Можно организовать для двух приложений одинаковый идентификатор пользователя в Linux, и в этом случае они смогут получить доступ к файлам друг друга.Для сохранения системных ресурсов приложения с одинаковым идентификатором пользователя могут также работать в одном и том же процессе Linux и совместно использовать одну и ту же виртуальную машину (приложения также должны быть подписаны одним и тем же сертификатом). "

Другая возможность заключается в том,файлы создаются как «читаемые миром», так что каждое приложение может их прочитать.

Итак, подведем итоги и вернемся к вашему вопросу: если вы не можете изменить «my_app_1», то это невозможно.Из вас можно модифицировать оба приложения, выбрав одно из приведенных выше решений.

1 голос
/ 27 февраля 2012

Два варианта:

  1. Если вы разрабатываете оба приложения и хотите предоставить общий доступ к файлу, оставьте его где-нибудь еще (например, на внешнем хранилище) или сделайте его читабельным для всего мира.
  2. Если вы пытаетесь прочитать файл другого приложения - ну, не стоит, это ключевой элемент в архитектуре безопасности Android.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...