Есть ли способ автоматического обновления приложения на Android? - PullRequest
35 голосов
/ 17 июня 2010

Я разрабатываю приложение, которое, скорее всего, будет предварительно установлено на устройствах. Он также будет доступен в Google Play. Есть ли способ обновить те экземпляры, которые не загружаются через Google Play, так как Google Play не будет уведомлять пользователей об обновлении.

Я думал о том, как предложил здесь , пытаясь периодически связываться с моим сайтом, и когда доступно обновление, загрузите его.

Есть ли способ сделать это обновление автоматически или даже без вывода сообщений, чтобы пользователю ничего не нужно было делать (например, запускать пакет вручную). Или, когда мой сайт показывает, что обновление доступно, предложить пользователям обновление через Google Play, даже если оно не установлено через Market (РЕДАКТИРОВАТЬ: этот вариант Google Play будет предпочтительнее, поскольку пользователям не нужно будет проверять «разрешить установку Нерыночные источники ".)

Ответы [ 9 ]

43 голосов
/ 17 июня 2010

У меня была такая же проблема, теперь я проверяю в начале моего приложения, есть ли новая версия в моей конфигурации xml.

Я сравниваю фактическую версию с тегом " 1.1 </ app_version>" моего файла configuration.xml. если оно ниже, я спрашиваю с помощью пользовательского AlertDialog, если пользователь продолжит обновление

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse(myapk_link));
startActivity(intent);    

после загрузки пользователь должен запустить пакет вручную.

, если вы выбираете обновление из Android Market, используйте:

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://details?id=com.package.name"));
startActivity(intent);  

com.package.name должен быть "пакетом" вашего приложения

или

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APP_NAME));
startActivity(intent);  
8 голосов
/ 17 июня 2010

Только что нашел способ, который работает. Запустите намерение для маркета, который ищет мое приложение.

Протестировано с OpenIntent Newsreader, потому что для него было легко найти более старую версию .apk. Маркет находит приложение и, когда пользователь нажимает кнопку «Установить», заменяет более старую версию на ту, которая есть в Маркете. Я думаю, что это гораздо более простое решение для пользователя, чем загрузка и запуск вручную .apk.

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME));
startActivity(intent);  
7 голосов
/ 22 января 2013

Есть ли способ обновить экземпляры, которые не загружены через Google Play, поскольку Google Play не будет уведомлять пользователей об обновлении.

Старый вопрос, новый ответ:

После того, как я нашел точно такой же вопрос (предварительно установленное на устройстве приложение, как я могу предоставить обновление через Google-Play), я нашел эту информацию на support.google.com *:

Google Play может управлять обновлениями предварительно загруженных приложений при соблюдении следующих условий:

  • Предварительно загруженное приложение должно находиться в системном разделе
  • Предварительно загруженное приложение должно быть бесплатным
  • Предварительно загруженное приложение должно быть подписано той же подписью, что и приложение, опубликованное в Google Play
  • Имя пакета предварительно загруженного и обновленного приложения должно совпадать
  • Код версии обновленного приложения должен быть больше, чем у предварительно загруженного приложения

* от 2015-04-13

4 голосов
/ 17 июня 2010

Я разрабатываю приложение, которое, скорее всего, будет предварительно установлено на устройствах.

Затем вам нужно поговорить с производителями устройств и задать им свои вопросы.Никто другой не сможет рассказать вам, что это возможно, а что нет, учитывая их устройство и носителей, которые будут его распространять.Ответы будут в значительной степени зависеть от того, как они будут создавать свои прошивки, будет ли ваше приложение частью прошивки или «установлено» как обычное приложение, каково их расположение с носителем: по сравнению с обновлениями прошивки и т. Д.Вы можете даже не получить голоса по этому вопросу.

1 голос
/ 10 февраля 2012

Если кто-либо, связавший приложение с устройством, выполняет его должным образом, то приложение все равно будет иметь рыночную ссылку (даже как системное приложение), и Market предложит пользователю обновить его, если будет доступна новая версия.В конце концов, это именно то, что происходит с приложением типа GMail, которое предварительно установлено на телефонах.

0 голосов
/ 26 ноября 2018

Google в 2018 году Android Dev Summit объявил об обновлении API для Android в приложении для разработчиков, так что вы можете прочитать всю историю здесь и получить обновленную информацию по этому вопросу. Подробности API для Android в обновлении

0 голосов
/ 06 февраля 2018

Можно полностью автоматически обновить приложение, если вы можете подписать приложение как системное приложение. Мы написали приложение для конкретного оборудования, мы создали приложение для обновления, которое производитель подписал для нас. Приложение обновления запускается при запуске устройства, проверяет текущую версию приложения и новую версию и, при необходимости, устанавливает новую версию.

Вариант использования: приложение для киосков на планшетах одной марки и модели, в которых нет Google Play.

0 голосов
/ 01 июня 2015

Есть хороший сервис, который помогает вашему приложению обновляться. Взгляните на https://www.pushlink.com

В этом продукте есть режим NINJA, который позволяет выполнять обновления без вмешательства пользователя.

Для других «режимов» по-прежнему необходимо включить «Установить нерыночное приложение». Если он не включен, процесс установки запросит его и перенаправит пользователя в настройки приложения, после чего пользователь сможет установить приложение.

0 голосов
/ 17 июня 2010

Вы не можете установить или обновить пакет автоматически.Только Android-маркет способен сделать это (то есть он автоматически обновляется).

Вы, конечно, можете загрузить пакет и запустить Intent, чтобы установить его, но пользователь должен будет иметь «Разрешить-Маркеты приложений "включены, и им все равно придется вручную утвердить установку / обновление.

Один из возможных способов выяснить, как это делает Google Maps.Обычно это предустановлено, но, кажется, всегда отображается как обновление в приложении Android Market.Есть ли специальный флаг в packages.xml или в манифесте, я не знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...