#android
Добрый вечер, возник вопрос как сделать чтобы своё готовое android приложение установленное на машине пользователя могло обновляться если я дополнил интерфейс или устранил баг и т д, как это прописать в коде ?
Ответы
Ответ 1
Стандартными средствами и без рута - никак. Обычно это происходит так: вы выкладываете новую версию приложения в маркет, девайс юзера через маркет по расписанию (силами маркета, т.е. без вашего участия) проверяет все установленные приложения на предмет наличия обновлений и, если у юзера поставлены соответствующие настройки в маркете, маркет сам установит обновление Согласно en-SO, если у вы программно скачаете новый apk, у коего версия больше версии текущего и идентичные пакет и сертификат, то вы можете запустить системный Intent на обновление приложения так: Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(new File(pathToApk)); intent.setDataAndType(uri, "application/vnd.android.package-archive"); startActivity(intent); Далее юзер должен будет, по идее, подтвердить установку обновления. Если девайс рутован, то можно вот так запустить установку apk через систему без участия юзера: public static void installNewApk() { try { Runtime.getRuntime().exec(new String[] {"su", "-c", "pm install -r /mnt/internal/Download/fp.apk"}); } catch (IOException e) { System.out.println(e.toString()); System.out.println("no root"); } } Реализовать же логику запуска этого интента/команды можно примерно так: При первом запуске приложения запишите во внутренние ресурсы (sharedPrefereneces) номер версии. С к-л переодичностью проверяйте есть ли у вас где-то на к-л сервере новая версия. Если да - скачивайте apk и по завершении запускайте интент/команду.
Комментариев нет:
Отправить комментарий