На данный вопрос уже ответили:
Пишу модуль для обновления приложения программно.
Необходимо установить новую версию .apk программно, чтоб клиент даже не знал что у него обновилось приложение.
Возможно ли это? И если да, то как?
Установить приложение программно в silent mode без прав рута в общем случае невозможно.
К тому же, если приложение с подобным функционалом опубликовано в Google Play, то оно может быть заблокировано (обновление должно быть опционально и только через Google Play).
Если есть рут, то можно примерно так:
public static void installAPK(String filename) {
File file = new File(filename);
if (file.exists()) {
try {
String command;
command = "adb install -r " + filename;
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command});
proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Делается это так:
Intent installIntent = new Intent(Intent.ACTION_VIEW);
installIntent.setDataAndType(Uri.parse("file:///path_to.apk"),
"application/vnd.android.package-archive");
//или если установка из маркета
installIntent.setData(Uri.parse("market://details?id=app.package.name"));
startActivity(installIntent);
В любом случае, без одобрения юзера установка не пройдет: выскочит уведомление - типа вы уверены?
Никак, надо просто запустить стандартную установку, а пользователь сам решит, надо ему это или нет.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости