it-swarm.com.ru

Есть ли способ автоматического обновления приложения на Android?

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

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

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

35
Levara

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

Я сравниваю фактическую версию с тэгом "<app_version> 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);  
43
Elenasys

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

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

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME));
startActivity(intent);  
8
Levara

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

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

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

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

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

* по состоянию на 2015-04-13

7
GeneSys

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

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

4
CommonsWare

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

1
hobbs

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

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

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

0
Christopher Orr

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

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

0
Christine

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

0
Rizvan

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

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

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

0
CelinHC