Что определяет, может ли приложение обновляться в Android Market помимо versionCode? - PullRequest
1 голос
/ 17 августа 2011

Что определяет, помечено ли приложение как имеющее обновление в Android Market?Очевидно, что имена пакетов должны совпадать, и приложение в Маркете должно иметь более высокий код версии.

Что еще?Я заметил, что при боковой загрузке ранее выпущенной версии приложения появится сообщение «Обновить» в приложении Market.Однако установка отладочной версии не дает того же эффекта.Он распознает его как установленный, но не указывает, что обновление доступно.Я предполагаю, что это потому, что они подписаны двумя разными подписями.Это точно?

Если это так, если более старая версия приложения установлена ​​из стороннего магазина приложений с такой же подписью и именем пакета, будет ли Android Market показывать, что в приложении доступно обновление?Какой лучший способ предотвратить это - использовать другую подпись?

Есть ли другие факторы, которые я не упомянул?

1 Ответ

1 голос
/ 17 августа 2011

Отладочная версия подписана другим ключом (автоматически созданным Eclipse), поэтому она выглядит как приложение, отличное от того, которое есть в Market (подписано вашим ключом релиза). Тем не менее, с новым Market (3.x) я получаю уведомления об обновлениях даже для отладочной версии, которую я установил через Eclipse, так что похоже, что он проверяет не подпись, а только имя пакета и версию. (Обновления, конечно, терпят неудачу, потому что подпись другая).

Вы можете (попытаться) определить, как было установлено ваше приложение, с помощью PackageManager, например, String installPM = pm.getInstallerPackageName(pname);, и выполнить определенную обработку в зависимости от установщика. Приложение Android Market может делать что-то подобное, но вам придется проверить, чтобы узнать.

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

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