Как создать два приложения для Android, где приложение «A» создает файлы, и только приложение «B» может читать файлы? На первый взгляд, Context.grantUriPermission кажется, трюк, потому что позволяет ограничить доступ к определенным пакетам вроде так:Безопасное ограничение доступа к FileProvider
//grant permision for app with package "packageName", eg. before starting other app via intent
context.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
(выше от «How to use support FileProvider for sharing content to other apps?»)
К сожалению, любой человек может создать приложение с заданной имя пакета. Поэтому этот метод ограничения не очень безопасен.
Есть ли более безопасный способ ограничения доступа к файлу? Возможно, путем получения сертификата открытого ключа вызывающего приложения (приложение «В» в этом случае)?
Спасибо за это! Я не вижу сразу, когда FileProvider получит имя пакета. Не могли бы вы немного разобраться? –
@BrianRisk: Я не понимаю ваш вопрос. Вы знаете свой собственный идентификатор приложения ('BuildConfig.APPLICATION_ID'). Для этого вам также нужно знать идентификатор приложения другого приложения. Как вы справляетесь с этим (например, испечь значение в своем приложении) зависит от вас. – CommonsWare