2015-06-22 3 views
1

Можно ли запретить делать копии файлов для сторонних приложений (например, adobe reader), которые я использую, чтобы открыть pdf-файлы, хранящиеся во внутренней памяти моего приложения?Как ограничить копирование файлов совместно с Content Provider на Android?

+0

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

+0

Я так и думал :(Так что только решение заключается в использовании некоторых встроенных в приложение PDF-ридеров? – malarkey25

+0

Если это pdf-код, вы можете использовать какой-то пароль, чтобы избежать печати, копирования и т. Д. – greywolf82

ответ

0

Нет, извините. Если вы передаете байты стороннему приложению, это стороннее приложение может делать то, что хочет с этими байтами.

Таким образом, единственное решение - использовать некоторые встроенные в PDF-программы для чтения PDF-файлов?

Это не будет полностью остановить людей от копирования ваших PDF-файлов. Тем не менее, он будет ограничивать атаки тех, кто укоренил свои устройства, что, вероятно, составляет менее 1% пользователей.

+0

Что делать, если я храню зашифрованные PDF-файлы во внутреннем приложении Затем, когда пользователь выбирает файл для чтения, приложение расшифровывает его, сохраняет его во внешней памяти и отображает его с помощью стороннего приложения. Как только сторонний читатель выйдет из переднего плана (кнопка «Назад», кнопка «домой» и т. д.), мое приложение удалит этот файл с расшифровкой. Я знаю, что для корневых устройств даже это не 100% -ное решение. Проблема здесь в том, как узнать, когда закрывается pdf-диск (приостановлено)? – malarkey25

+0

Я задал еще один вопрос о соблюдении состояния приложения [здесь] (http://stackoverflow.com/questions/30975533/how-to-observe-state-of-third-party-application-started-using-intent-action-view). Буду благодарен, если у кого-то есть ответ. – malarkey25

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