Установка Android APK программно
Я пытаюсь установить APK-файлы с нашего файлового сервера, и это нужно сделать тихо, чтобы пользователь не мог выбрать, установлен он или нет, или принять настройки / изменения разрешений. Это законное требование бизнеса, так как мы работаем с поставщиком устройств для предварительной загрузки наших приложений в / system / app. Это специальное планшетное устройство Android, и поэтому наше подразделение хочет, чтобы мы могли загружать обновления приложений (то есть принудительно устанавливать последнюю версию).
Я понимаю обычные ограничения безопасности, но, похоже, существует механизм автоматической установки приложений для приложений уровня производителя / производителя. Однако информация о том, как это сделать, в лучшем случае кажется очень разрозненной.
Кажется, установщик пакета должен находиться в / system / app, и установщик должен иметь тот же ключ сертификата подписи, что и устанавливаемое приложение. Это не проблема, но информацию о том, как реализовать эту функцию с помощью этого потока, я пока не нашел.
Кто-нибудь когда-либо делал это раньше?
2 ответа
Я совершенно уверен, что вам нужно будет доставить им специальное ПЗУ для Android, которое позволит вам сделать это (что, я сомневаюсь, понравится их бизнесу).
Amazon App Store на обычном устройстве не может быть установлен в фоновом режиме, как в Google Play. Может быть, Kindle Fire сможет это сделать (у меня его нет), но если это возможно, то это потому, что он работает на специальном ПЗУ, созданном Amazon.
Лучшее, что вы можете сделать, это запустить намерение, которое говорит, что пользователь должен обновлять приложение, что приводит его к действиям установщика, которые затем требуют взаимодействия с пользователем.
Не совсем ответ. Однако недавно мы столкнулись с аналогичным требованием к клиент-серверному приложению для Android.
Всякий раз, когда приложение обращается к серверу с запросом, оно также отправляет текущий versionCode.
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
//pInfo.versionCode;
//pInfo.versionName;
На стороне сервера мы проверяем код версии и, если у нас есть новая версия, информирует клиента, и клиент заставляет пользователя выполнить обновление до новой версии. Клиентское приложение не будет работать, пока оно не будет обновлено до новой версии. Но очевидно, что пользователь может не устанавливать и т. Д.
Надеюсь, поможет.