2017-01-18 2 views
1

Я собираюсь добавить новую версию своего приложения в Google Play. Каков наилучший способ обнаружить, что на телефоне установлена ​​старая версия приложения?Обнаружение приложения старой версии на Android

Обратите внимание, что я обнаружил бы, что установлена ​​старая версия моего приложения. Обратите внимание, что мое приложение установлено на телефонах, и у меня нет информации о версии (я не думал, что буду распространять новую версию).

+1

Вам не обязательно. Google Play обновит все старые версии вашего приложения, указав, что ваш код версии выше, чем предыдущий APK, который вы загрузили. – Sunshinator

+0

Я имею в виду что-то еще. Я хотел бы обнаружить, что старая версия установлена ​​на моем телефоне (или была установлена ​​во время установки новой версии, старая была удалена) –

+0

Посмотрите на это: http://stackoverflow.com/q/30727953/4350275 –

ответ

0

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

0

Если вы хотите получить информацию, вы можете сделать это в консоли разработчика.

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

Выберите ваше приложение, и там вы увидите установки по модели телефона, версии для Android и версия приложения.

Подробнее об этом here.

+0

Я бы хотел его обнаружить в моей новой версии приложения. –

0

Если вы уже не имеете способа хранения версий коды, то этот подход должен работать:

Во-первых получить код текущей версии следующим образом, в onCreate() методы:

public int versionCode; 
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); 
versionCode = pInfo.versionCode; 

Добавьте код, чтобы сохранить текущий код версии следующим образом, в методе onStop():

SharedPreferences sp = getSharedPreferences("prefs", Activity.MODE_PRIVATE); 
SharedPreferences.Editor editor = sp.edit(); 
editor.putInt("version_code", versionCode); 
editor.commit(); 

Затем получить предыдущей версии коды следующим образом, в самом onCreate() метода:

public int prevVersionCode = -1; 

SharedPreferences sp = getSharedPreferences("prefs", Activity.MODE_PRIVATE); 
int prevVersionCode = sp.getInt("version_code", -1); 

if(prevVersionCode == -1) { 
    // this will happen on a previous app version 
} 

если prevVersionCode равен -1, это означает, что это была старая версия приложения, которая была обновлена.

Если prevVersionCode не равен -1, это означает, что версия, из которой только что было обновлено приложение, была версией, более новой, чем версия, в которой был добавлен этот код сохранения.

Теперь вы можете легко сравнить между версиями с помощью VersionCode и prevVersionCode, просто отметим, что если prevVersionCode равен -1, это означает, что ранее приложение было на версии, которые не имеют метод накапливания , но теперь он обновлен до более новой версии.

Например: Предположим, что приложение в настоящее время на VersionCode 13 и добавить этот код и после обновления с VersionCode 14. Таким образом, когда пользователи обновить приложение, то prevVersionCode будет равен -1, и вы можете делай, что хочешь. versionCode будет равен 14, но prevVersionCode будет давать -1, только с FIRST RUN.При перезапуске и versionCode и prevVersionCode даст .

Теперь Предположим, что вы обновить приложение дальше и после обновления с VersionCode 15. Теперь на первом запуске обновленного приложения, VersionCode даст 15, но prevVersionCode даст 14. Но после перезапуска оба будут давать 15.

Смежные вопросы