Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,656
Записей в блоге: 3
#1

Автообновление приложения - Программирование Android

29.01.2016, 14:57. Просмотров 1255. Ответов 37
Метки нет (Все метки)

Возможно ли автообновление приложения программно?
без участия гугл плей т.е. приложение установлено из ненадежного источника
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2016, 14:57     Автообновление приложения
Посмотрите здесь:

Автообновление через Google Play - Программирование Android
Заметил, что некоторые приложения(не по умолчанию) обновляются через GP автоматически. Как сделать такое для своего приложения?

Автообновление приложения - Delphi
Подскажите как реализовать обновление программы. Моя программа написанная в делфи управляет базой данных хранящейся на сетевом диске. На...

Автообновление - C++ Qt
Здравствуйте. Стал писать автообновление для своей программы, назрел вопрос. Лучше использовать bat файлы или пытаться сделать посредством...

Автообновление - JavaScript
Доброго времени суток. Имеется страница layout.blade.php В нем есть <title>Сайт<title> И нужно сделать автообновление titl'a ...

Автообновление - C#
Итак столкнулся с такой проблемой. Моя программа обновляется практически каждый день(добавляются новые файлы и функции). Как вы понимаете...

Автообновление - C++ Builder
Я тут хочу зделать чтобы при нажатии на кнопку оно скачивала с страницы обновления и кидало их по указанному адресу. Заменяя их при этом....

Автообновление страницы - JavaScript
Подскажите пожалуйста как заставит обновлять страницу при смене точки остановки. Например страница сделана на основе двух точек 960 и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
04.03.2016, 13:45     Автообновление приложения #21
CoolMind, чет Вы через чур мудрите, у меня все проще:
-при авторизации в приложении проверяем наличие обновления;
-если оно имеется, скачиваем в какое либо место(при этом сохраняя его допустим в SharedPreferences);
-кидаем интент на установку этого файла;
-пользователь либо устанавливает, либо нет, без разницы;
-при запуске проверяем наличие apk установочного файла из SharedPreferences, и если таковой имеется - удаляем.
Название apk может быть каким угодно в принципе, оно ни на что не влияет.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
04.03.2016, 14:07     Автообновление приложения #22
androbro, да, неплохо, спасибо! Мне кажется, здесь есть какие-то подводные камни, но пока найти не могу. Давайте попробуем по шагам.
1) при авторизации в приложении проверяем наличие обновления.
2) при запуске проверяем наличие apk установочного файла из SharedPreferences, и если таковой имеется - удаляем.
Не знаю точно, какова последовательность этих двух пунктов. Допустим, проверить обновления можно только после авторизации (чтобы неизвестные пользователи не могли обновиться или сервер не пускает).
3) если оно имеется, скачиваем в какое либо место(при этом сохраняя его допустим в SharedPreferences).
Думаю, тут надо предложить скачать. Иначе, если пользователь не хочет обновляться, программа будет каждый раз удалять и скачивать.
4) кидаем интент на установку этого файла.
5) пользователь либо устанавливает, либо нет, без разницы.
Во время выполнения возможны подводные камни. Если поглядеть http://stackoverflow.com/a/9045884/2914140, то там упоминается про подписывание приложения тем же ключом. Интересно, что получится, если название пакета или ключ отличаются. Насколько я понял, удалять текущую программу перед установкой нельзя, она заменится автоматически.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
04.03.2016, 14:24     Автообновление приложения #23
Цитата Сообщение от CoolMind Посмотреть сообщение
Думаю, тут надо предложить скачать.
как я в этой теме вроде писал, у меня все жестко, либо обновляемся и работаем, не хотим обновляться не работаем(==получаем по шапке).
Цитата Сообщение от CoolMind Посмотреть сообщение
Во время выполнения возможны подводные камни.
Цитата Сообщение от CoolMind Посмотреть сообщение
про подписывание приложения тем же ключом
да эт насколько мне известно при любом обновлении проверяется идентичность подписей.
Цитата Сообщение от CoolMind Посмотреть сообщение
Интересно, что получится, если название пакета или ключ отличаются.
насколько помню скажет что просто нельзя обновится...старая версия как мне кажется должна удалятся только при успешной установке новой
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
04.03.2016, 15:09     Автообновление приложения #24
Цитата Сообщение от androbro Посмотреть сообщение
насколько помню скажет что просто нельзя обновится
Вот и мне так кажется. В этом случае, наверное, нужен либо второй инсталлятор, либо давать пользователю вручную удалить старую версию и поставить новую.

Добавлено через 8 минут
Добавлю выпадающую ошибку для этого случая: http://stackoverflow.com/questions/1...ils-to-install.

Добавлено через 8 минут
Также есть следующее описание (http://stackoverflow.com/a/32201317/2914140):
Android does not allow any code within an APK to be run once the user chooses to remove it - there are no notifications and no pre-uninstall actions that you can use. It's designed that way to prevent developers from writing Apps that can never be uninstalled by the user.
Having two apps with the same package name but signed with different keys is also not allowed, and can only be resolved by the user manually removing the first app before installing the second. This is to prevent developers from writing Apps to imitate other Apps (like Facebook for example) without the user knowing about it.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
04.03.2016, 15:51     Автообновление приложения #25
Цитата Сообщение от CoolMind Посмотреть сообщение
В этом случае, наверное, нужен либо второй инсталлятор, либо давать пользователю вручную удалить старую версию и поставить новую.
ну так а что Вам стоит подписывать приложение одним ключом и не париться по этому поводу?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
04.03.2016, 15:55     Автообновление приложения #26
androbro, по идее да, так и надо делать. Но возможны разные ситуации. Не уверен, но возможно, подписание с другого компьютера. Или передача дел другому сотруднику. Или замещение на период отпуска.
faceman1
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 14
07.03.2016, 14:48     Автообновление приложения #27
Имеется приложение в гугл плэе, думаю реализовать в нем механизм самообновления. Возник вопрос, можно ли программно реализовать включение режима разработчика и установку приложений из неизвестных источников?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
11.03.2016, 15:32     Автообновление приложения #28
faceman1, http://stackoverflow.com/questions/1...ogrammatically, пишут, что это можно сделать, если приложение системное или имеется root-доступ.

Добавлено через 3 минуты
Цитата Сообщение от androbro Посмотреть сообщение
у меня все жестко, либо обновляемся и работаем, не хотим обновляться не работаем(==получаем по шапке)
Тоже так будем делать, но возникла вот такая проблема. Пользователю, конечно, установить предложится, но он может и отменить. Соответственно, приложение не догадается, что установка не сделана. Как узнать? Думаю, можно по окончании сравнить версии текущего файла и ту, которая должна быть.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
11.03.2016, 16:27     Автообновление приложения #29
Цитата Сообщение от CoolMind Посмотреть сообщение
Но возможны разные ситуации. Не уверен, но возможно, подписание с другого компьютера. Или передача дел другому сотруднику. Или замещение на период отпуска.
А как это влияет на ключ? Это же файл, не привязанный ни к чему вообще - показываешь его студии, вводишь пароль от него и все. Может даже инопланетянин на своем устройстве подписать (если оно студию запустит, конечно).
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
11.03.2016, 16:30     Автообновление приложения #30
Цитата Сообщение от CoolMind Посмотреть сообщение
Как узнать?
да способов узнать можно придумать много...
вот например пользователь не установил приложение, снова проходит авторизацию(тут важно не залогинить его при обнаружении новой версии) тут ему бах и снова предложение обновится(можно в принципе файл не качать, проверив на exists).
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
11.03.2016, 16:39     Автообновление приложения #31
Цитата Сообщение от Spelcrawler Посмотреть сообщение
показываешь его студии, вводишь пароль от него и все.
Согласен при условии, что пароль известен. Впрочем, пароли обычно тоже передают.
Цитата Сообщение от androbro Посмотреть сообщение
снова проходит авторизацию(тут важно не залогинить его при обнаружении новой версии)
Да, это хороший подход, тоже над этим думал.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
15.03.2016, 16:24     Автообновление приложения #32
А вот и первый серьёзный подводный камень.
Что же вы мне не сказали, что приложение после обновления не открывается автоматически?
Пробовал ловить разные receiver'ы, как пишут в http://stackoverflow.com/questions/2...reset-an-alarm и других статьях. Ничего не работает!
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
15.03.2016, 16:38     Автообновление приложения #33
Цитата Сообщение от CoolMind Посмотреть сообщение
А вот и первый серьёзный подводный камень.
Что же вы мне не сказали, что приложение после обновления не открывается автоматически?
ну как по мне это и не такой уж и большой камень, опять таки все в руках пользователя, там же после обновления появляется диалог(если я правильно помню) с возможностью открытия приложения.
В принципе как и при установке любого другого приложения, данное поведение стандартно.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
15.03.2016, 16:46     Автообновление приложения #34
Цитата Сообщение от androbro Посмотреть сообщение
после обновления появляется диалог(если я правильно помню) с возможностью открытия приложения
Когда делал через вторую программу (первая вызывает вторую, та обновляет первую), так действительно происходило, предлагала 2 кнопки: "Готово" и "Открыть". Когда просто обновляю одну программу, после установки она закрывается и ничего не предлагает. Затем её можно открыть вручную и убедиться, что версия поменялась. Дурдом какой-то.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
15.03.2016, 16:48     Автообновление приложения #35
Цитата Сообщение от CoolMind Посмотреть сообщение
после установки она закрывается и ничего не предлагает.
странно, должно быть поведение которое Вы и описали:
Цитата Сообщение от CoolMind Посмотреть сообщение
предлагала 2 кнопки: "Готово" и "Открыть"
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
15.03.2016, 17:12     Автообновление приложения #36
Цитата Сообщение от androbro Посмотреть сообщение
странно, должно быть поведение которое Вы и описали
Это хорошая новость, значит, к этому поведению надо придти.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
15.03.2016, 17:14     Автообновление приложения #37
CoolMind, ресиверы не ловятся до запуска приложения руками. Посмотрите на реализацию обновления в приложении fs videobox - мне нравится, удобно. Автор есть на 4пда - можно спросить как он реализовал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2016, 18:19     Автообновление приложения
Еще ссылки по теме:

Автообновление таймера - JavaScript
Доброго времени суток! Есть скрипт (таймера обратного отсчета) $(document).ready(function () { //код jQuery //функция вызова...

Автообновление программы - C#
Здравствуйте, форумчане, пишу функцию автообновления программы. Все работает, осталось только заменить старые файлы на новые. Вопрос...

Автообновление БД из DataSet - C#
Ситуация такова. Програмно обновляю DataSet из контрола (группы контролов). Интуитивно, по строению SqlDataAdapter, понимаю, что внесенные...

Автообновление программы - C++
Доброго вам времени суток! Вот встал вопрос реализовать автообновление программы. Какие алгоритмы для этого применяются? Я например...

Автообновление мувиклипа - ActionScript
Уважаемые флеш-мастера! Подскажите, пожалуйста, можно ли сделать так, чтобы мувиклип (swf), находящийся на сервере (ну, например, на Ucoz)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
15.03.2016, 18:19     Автообновление приложения #38
Здесь объясняют, как открыть это окно: я совсем забыл добавить эту строку:
Java
1
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Добавлено через 33 минуты
И тут проявилась новая проблема. Когда вызывал обновление первого приложения через второе, то в onActivityResult я легко после обновления получал версию приложения и мог вывести сообщение, что оно обновилось (или, наоборот, не обновилось).
В случае если обновляю само приложение, появляется известная табличка с предложением обновить программу и кнопками "Отмена" и "Установить". При этом onActivityResult срабатывает сразу, ещё до того как пользователь нажмёт "Установить".

Добавлено через 2 минуты
Правда, если бы он срабатывал позже, то сама активность уже не существовала бы, что приводило бы к ошибке.
Yandex
Объявления
15.03.2016, 18:19     Автообновление приложения
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru