6

借助提供特定于市场的 API 的 Android 应用商店,我如何构建一个有条件地使用特定于供应商的库的 Android 应用程序?例如,亚马逊提供了他们自己的应用内购买和“GameCircle”API。Google 拥有自己的 Licensing API,而现在欧亚将拥有自己的 IAP 和硬件控制器 API。

随着这些供应商特定 SDK 的激增,维护我的 Android 游戏的多个单独版本变得越来越困难。我想知道如何构建我的项目,以便我的代码可以在运行时检查各种 API 并在可用时使用它们。就像是

if (amazon api is available)
  // Do some amazon-specific stuff

在构建时,我将链接所有库,然后将相同的通用应用程序上传到每个商店。

4

1 回答 1

5

我目前正在使用这个。

private boolean isAmazonInstall()
{
    PackageManager pm = getPackageManager();
    String installationSource = pm.getInstallerPackageName(getPackageName());
    if (installationSource != null && installationSource.startsWith("com.amazon"))
    {
                    return true;
    }
            return false;
}

据称,对于亚马逊安装,getInstallerPackageName 的返回值为“com.amazon.venezia”。对于从 Google Play 安装的应用程序,结果是“com.android.vending”(尽管它曾经是“com.google.android.feedback”。手动 APK 安装返回 null。

我还没有找到官方确认这种方法是有效的。但是我还没有找到更好的方法。

于 2013-01-06T01:09:57.957 回答