Нет способа заблокировать файл в Android; даже если бы это было так, файлы были бы заблокированы только во время работы вашего приложения, что не помешало бы другим приложениям обращаться к файлу, когда пользователь не запустил ваше приложение.
SD-карты обычно форматируются с использованием FAT (или FAT32), и это имеет место в Android. FAT предлагает очень ограниченные права доступа к файлам, поэтому вы не можете ограничить доступ к файлам таким образом. Опять же, даже если бы вы могли сделать что-то подобное, это не обеспечило бы никакой защиты, если бы пользователь вынул SD-карту из телефона и поставил ее на свой ПК.
Если вы хотите сохранить файлы вашего приложения в секрете, вам нужно поместить их во внутреннюю память телефона в область, отведенную для вашего приложения. Каждое приложение запускается с другим идентификатором пользователя, и каталог данных каждого приложения защищен с помощью разрешений в стиле UNIX, что не позволяет другим приложениям читать их. Поэтому, в то время как это лишит другие приложения доступа к вашим файлам, оно не остановит разумно определенного пользователя, имеющего root-доступ к своему телефону, копирующего их.
Посмотрите методы Context.openFileInput()
, Content.openFileOutput()
и Context.getFilesDir()
, чтобы узнать, как хранить файлы во внутренней памяти телефона. .