18

これはおそらくロングショットだと思いますが、アプリがAmazonアプリストアでホストされているのか、Google Playでホストされているのかをプログラムで検出する方法はありますか?アプリをダウンロードしたアプリストアにリンクしたいのですが、回避できるのであれば、この違いだけで2つの異なるAPKを使用したくありません。

4

2 に答える 2

26

つい最近の時点で、Amazon アプリストアは正常な値を返しますPackageManager.getInstallerPackageName()

PackageManager pm = context.getPackageManager();
String installerPackageName = pm.getInstallerPackageName(context.getPackageName());

if ("com.android.vending".equals(installerPackageName)) {
    //do google things
} else if ("com.amazon.venezia".equals(installerPackageName)) {
    //do amazon things
}

ここを参照してください: https://forums.developer.amazon.com/forums/thread.jspa?threadID=680

このアプリのリンクを評価する例:

グーグルプレイ-

market://details?id=パッケージ名

アマゾンストア

http://www.amazon.com/gp/mas/dl/android?p=パッケージ名

また

amzn://apps/android?p=com.amazon.mp3

于 2013-06-09T09:52:33.950 に答える
1

最も簡単な方法は、Amazon と Google Play の間で異なるバージョン コードまたは名前を使用することです。次に、PackageManager.getPackageInfoを使用してこれらの値を取得し、そこから適切なアプリ ストア リンクを選択できます。

例: Amazon のすべてのバージョン名の末尾に「.65」、つまり 1.0.65 を付けます。次に使用します

public boolean isAmazon(Context context) {
    String versionName = "";
    try {
        versionName = context.getPackageManager().getPackageInfo(
            getPackageName(), 0).versionName;
    } catch (NameNotFoundException e) {
        // Can't find itself...
    }
    return versionName.endsWith(".65");
}
于 2013-03-11T21:22:10.423 に答える