У меня есть три разных планшета (без названия), на которых мое приложение будет запускаться только в режиме KIOSK. Я хочу обновить приложение на этих устройствах.
На данный момент мой прогресс:
У меня есть приложение «Launcher», которое запускает и обрабатывает обновление «Main "приложение.
Приложение Launcher получает новый APK через HTTP и сохраняет его в своем getFilesDir () (/ data / data / packagename / files /)
Моя цель на данный момент установить этот APK, не предлагая пользователю разрешить эту установку. AFAIK это невозможно без root доступа
Я пробовал это:
Runtime.getRuntime().exec("chmod 777" + apkLocation);
String command; command = "pm install -r " + apkLocation;
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command});
proc.waitFor();
Но это не удается и возвращает 1. Я предполагаю, что это потому, что приложение не имеет доступа root .
Кроме того, приложение является активным администратором и владельцем устройства, но, тем не менее, похоже, что эти разрешения не давали мне права делать то, что я упоминал выше.
РЕДАКТИРОВАТЬ: Моя целевая версия API - 24.
EDIT2: Другой вопрос. Можно ли установить APK без вывода сообщений, вызвав скрытый API с помощью отражения?