Android 应用商店提供特定于市场的 API,我如何构建有条件地使用供应商特定库的 Android 应用?例如,Amazon 提供了他们自己的应用内购买和“GameCircle”API。 Google 拥有自己的许可 API,现在 Ouya 将拥有自己的 IAP 和硬件 Controller API。
随着这些特定于供应商的 SDK 的激增,维护我的 Android 游戏的多个独立版本变得越来越困难。我想知道如何构建我的项目,以便我的代码可以在运行时检查各种 API 并在可用时使用它们。有点像
if (amazon api is available)
// Do some amazon-specific stuff
在构建时,我会链接所有库,然后将相同的通用应用程序上传到每个商店。
最佳答案
我目前正在使用它。
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。
我无法找到官方确认此方法有效。但我一直没能找到任何更好的方法。
关于android - 如何有条件地为 Android 应用程序使用特定于供应商的 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178049/