2017-01-18 18 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; 

メソッドで最新バージョンコードを保存するコードを追加します。

そして、次のように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と等しくない場合、これは、アプリケーションが更新されたばかりのバージョンが、この保存コードが追加されたバージョンより新しいバージョンであることを意味します。

は今、あなたは簡単にversionCodeprevVersionCodeを使用してバージョン間で比較することができ、ちょうどprevVersionCodeは-1に等しい場合、それは以前にアプリが格納方法を持っていなかったバージョンにあったことを意味していることに注意してくださいしかし、今は新しいバージョンに更新されました。例えば

:ユーザーがアプリを更新するときので、prevVersionCodeは-1等しくなり、することができますはアプリがversionCode 13に現在あるとし、あなたはこのコードを追加し、versionCode 14と更新を投稿しますあなたがしたいことを何でもしてください。 versionCodeは14になりますが、prevVersionCodeは-1を返します。最初の実行時はです。再起動時にバージョンコードprevVersionCodeはとなります。

は今、あなたはあなたのアプリケーションをさらに更新し、更新されたアプリの最初の実行に今versionCode 15と更新を投稿したと、versionCodeは15を与えるだろうが、prevVersionCodeは14を与えるだろう。しかし、再起動後の両方がになります。

関連する問題