Я пишу приложение для Android, которое будет работать на нестандартном оборудовании с ПЗУ, которым я управляю.
Устройство будет запускать одно приложение (как модуль запуска), и после того, как устройство развернуто, я (как правило) больше не имею к нему доступа. Приложение также поддерживает само обновление.
Как таковой, мне нужен способ для правильной обработки разрешений для приложения, то есть разрешения должны предоставляться автоматически (включая опасные), если они когда-либо добавляются в манифест.
Теперь приложение подписывается тем же сертификатом, что и ОС Android, работающая на устройстве, и приложение помещается в каталог priv-app, когда устройство мигает.
Я предполагал, что это автоматически предоставит разрешения, но это не так.
Я попытался добавить android:sharedUserId="android.uid.system"
в манифест, и это действительно предоставляет все разрешения, но поскольку уже существует довольно много устаревших устройств «в дикой природе», добавление этой опции делает так, чтобы приложение больше не могло обновляться (выдает ошибку INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
).
Итак, каков наилучший способ обработки разрешений в этом случае? Есть ли здесь какая-то другая магия вуду? Стоит ли просто прикусить пулю, добавить опцию sharedUserId
и вручную обновить все устройства (нежелательно, но возможно)?