Как обрабатывать обновления приложений с бесплатной до платной версии при сохранении любых данных - PullRequest
3 голосов
/ 10 июня 2010

Вот контекст.Я хочу иметь бесплатную версию и премиум-версию одного и того же приложения.Когда люди покупают приложение, я хочу, чтобы они могли «обновляться», не теряя своих данных, то есть премиум-версия должна устанавливаться поверх бесплатной версии.Я хочу использовать ту же базу кода и просто переключить настройку для создания премиум-версии.Andoid Market не позволяет мне конвертировать бесплатное приложение в платное, поэтому тривиальный вариант недоступен.

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

Ответы [ 3 ]

1 голос
/ 17 июня 2010

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

Хорошая новость: для добавления функции резервного копирования / восстановления базы данных (копирование базы данных на SD-карту и обратно в папку приложения) требуется всего несколько строк кода.Моим пользователям придется установить обе версии параллельно, создать резервную копию базы данных из бесплатной версии и восстановить ее до премиум-версии.

1 голос
/ 16 января 2013

Вместо резервного копирования базы данных на SD-карту и обратно (согласно предложению @cdonner), для которой требуется разрешение WRITE_EXTERNAL_STORAGE, бесплатное приложение может предоставить ContentProvider, которое платное приложение может использовать для передачи данных. .

Обязательно используйте разрешения для защиты вашего контента.

1 голос
/ 10 июня 2010

Моя идея заключается в следующем:

  • Платная версия android:versionCode должна быть бесплатной android:versionCode + 1
  • Оба должны иметь одинаковый пакет.

Когда установлена ​​платная версия, она заменит бесплатную.На самом деле он будет обновлять его, поскольку он имеет более высокое значение android:versionCode.

Поскольку оба пакета имеют одинаковый пакет, они будут помещены в одну папку (/data/data/your.package), поэтому платное приложение сможет получить доступбесплатное приложение дб.

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