2010-04-30 2 views
5

Я хочу заблокировать файлы, которые находятся на SD-карте Android. Мне нужно запереть их, чтобы никто, кроме моего программного обеспечения, не мог удалить перемещение копии или отправить их по Bluetooth или каким-либо другим способом. Как я могу это сделать?Как заблокировать файлы в android с помощью java-кода?

ответ

2

Я думаю, вы хотите зашифровать файл. Хотя файл все равно можно перемещать, это будет бесполезно для всего, кроме вашего приложения. Люди смогут копировать, перемещать, удалять, но содержимое не будет скомпрометировано.

5

Вы не можете сделать это на любой платформе (не говоря уже о Android) с помощью обычной SD-карты. Сожалею!

7

В Android не существует lock a file; даже если бы это было так, файлы будут заблокированы только при запуске вашего приложения, что не помешает другим приложениям обращаться к файлу, когда пользователь не запустил ваше приложение.

Карты SD обычно отформатированы с помощью FAT (или FAT32), и это в случае с Android. FAT предлагает очень ограниченные права доступа к файлам, поэтому вы не можете ограничить доступ к файлам таким образом. Опять же, даже если вы можете сделать что-то подобное, это не будет предлагать никакой защиты, если пользователь вытащил SD-карту из своего телефона и поставил ее на свой компьютер.

Если вы хотите, чтобы ваши файлы приложений были приватными, вам необходимо поместить их в внутреннее хранилище телефона в области, зарезервированной для вашего приложения. Каждое приложение запускается с другим идентификатором пользователя, а каталог данных каждого приложения защищен с использованием разрешений файлов в стиле UNIX, которые запрещают другим приложениям читать их. Поэтому, в то время как это остановит другие приложения, имеющие доступ к вашим файлам, это не остановит разумно определенного пользователя с правами root, чтобы их телефон копировал их.

Ознакомьтесь с методами Context.openFileInput(), Content.openFileOutput() и Context.getFilesDir(), чтобы узнать, как хранить файлы во внутренней памяти телефона.

Смежные вопросы