68

アプリケーションが Google Play または他の市場からインストールされていることを検出する必要があります。この情報を取得するにはどうすればよいですか?

4

4 に答える 4

59

このPackageManagerクラスは、指定したパッケージがインストールされているもののパッケージ名を通知するgetInstallerPackageNameメソッドを提供します。サイドローディング アプリには値が含まれません。

編集: Amazonアプリストアに関する以下の@mttmllnsの回答に注意してください。

于 2012-05-30T03:03:27.260 に答える
27

参考までに、Amazonストアの最新バージョンは、PackageManager.getInstallerPackageName()Google "com.amazon.venezia"Playの"com.android.vending".

于 2013-05-31T17:43:18.417 に答える
19

このコードを使用して、ビルドがストアからダウンロードされたか、サイドロードされたかを確認します。

public static boolean isStoreVersion(Context context) {
    boolean result = false;

    try {
        String installer = context.getPackageManager()
                                    .getInstallerPackageName(context.getPackageName());
        result = !TextUtils.isEmpty(installer);
    } catch (Throwable e) {          
    }

    return result;
}

コトリン:

  fun isStoreVersion(context: Context) =
    try {
      context.packageManager
        .getInstallerPackageName(context.packageName)
        .isNotEmpty()
    } catch (e: Throwable) {
      false
    }
于 2014-07-23T09:15:31.770 に答える