Файловые права в Android - PullRequest
4 голосов
/ 21 февраля 2009

Я здесь, чтобы спросить кое-что, может быть, очень простое, я работаю с файлами, FileOutputStream и FileInputStream , но я просто хочу получить / установить несколько реквизитов из файл, я имею в виду, владелец файла, права на чтение / запись и т. д.

Оглядываясь вокруг, я обнаружил классы FileDescriptor и FilePermission , но у меня нет идеи, как их использовать, поэтому я прошу некоторую помощь по этому поводу; На самом деле я использую метод setReadOnly () из класса Файл , но это то, что я сейчас ищу.

Ответы [ 3 ]

4 голосов
/ 21 февраля 2009

Здесь есть несколько проблем:

  1. Приложение по умолчанию имеет неограниченный доступ к своим собственным файлам (чтение / запись / удаление / «выполнить» ... все средства выполнения), но не имеет доступа к файлам других приложений.
  2. Android затрудняет взаимодействие с другими приложениями и их данными, кроме как через Intents. Намерения не будут работать для разрешений, потому что вы зависите от приложения, получающего Намерение, чтобы делать / предоставлять то, что вы хотите; вероятно, они не предназначены для того, чтобы сообщать кому-либо права доступа к файлам. Есть способы обойти это, но только когда приложения предназначены для работы в одной и той же JVM (т.е. приложения, которые вы спроектировали для совместной работы в одной и той же JVM)

Ваше приложение может получить и установить разрешения для своих собственных файлов , но не может сделать это ни для кого другого. Насколько мне известно, в SDK нет явной концепции владения, поэтому вы не можете найти владельца файла.

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

2 голосов
/ 21 февраля 2009

Android использует стандартный Java API для обработки файлов и прав доступа к файлам. Вот страница, обсуждающая разрешения в Java.

По сути, все, что вам нужно сделать, это получить объект FilePermission файла, затем получить PermissionCollection из объекта FilePermission с помощью метода newPermissionCollection () , а затем добавляйте или удаляйте элементы в эту коллекцию или из нее.

1 голос
/ 26 марта 2011

Ну ... если вы только хотите ВИДЕТЬ разрешения, не могли бы вы просто использовать "ls -l"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...