Последние Android 6,0 forces developers для проверки и разрешения запросов по требованию, и использовать библиотеки поддержки сделать это в предыдущих версиях через вызовы, такие как:по требованию разрешения в статической области
ContextCompat.checkSelfPermission(someAndroidContext, somePermission)
Однако, у меня есть особый случай, когда мне требуются права доступа к файлу перед существованием любого Context
из-за извлечения и загрузки собственной библиотеки, которая должна произойти во время инициализации класса static
до возникновения Контекста. Добавление разрешений манифеста не работает (приложение разбито на совершенно новые телефоны с Android> = 6.0).
Просьба не предлагать обходные пути, такие как «не извлекать библиотеки» или запрашивать слишком подробные сведения о требованиях и т. Д., Так как я не могу быть вправе обсуждать эти детали, проект большой и там являются взаимозависимыми библиотеками, которые должны находиться в незапакованном пространстве до загрузки, а также есть сторонние библиотеки, которые представляют собой очень сложные проекты (у одного есть 20+ зависимостей, которые были тщательно оптимизированы и построены вручную для конкретных архитектуры на запрос клиента).
TL; DR Есть ли способ «предварительно спросить» разрешения перед запуском приложения или запросить разрешение без Context
?
Ошибки происходят с внешним хранилищем, так как файлы конфигурационных файлов разработчика, которые переопределяют упакованные версии, находятся по очень недурким причинам (пользовательская ОС, у которой нет внутренней записи, доступной для записи). Экстракция происходит как внутри, так и снаружи в зависимости от конфигурации. Внешнее извлечение очень важно для целей тестирования и проверки для разработчиков, которые не могут напрямую обращаться к устройству. Этот материал из моих рук. – EntangledLoops
@EntangledLoops: «пользовательская ОС, которая не имеет записываемой внутренней памяти» - тогда вы также можете изменить ОС, чтобы решить вашу исходную проблему с разрешениями. – CommonsWare
Нет, я не могу, поскольку он построен сторонним клиентом, который является крупной компанией, которая делает ОС. – EntangledLoops