我能检测亚马逊平板电脑吗?

时间:2014-01-13 08:52:43

标签: android device

我一直在我的项目中使用Google服务,但亚马逊平板电脑不支持Google服务,所以如果我想将应用发布到亚马逊商店,我需要删除Google服务。 我不想将项目划分为“For Google Play”和“For Amazon Store” 我使用android.os.Build.MODEL获取设备名称,但我不确定它是否安全? 我可以在项目中检测亚马逊平板电脑吗?

if(is Amazon) {
    //do something
}
else {
    //do something
}

3 个答案:

答案 0 :(得分:7)

是的,您可以使用Build.MODEL和Build.MANUFACTURER。

根据Amazon documentation,Build.MANUFACTURER始终返回“Amazon”,Build.MODEL返回不同的字符串,具体取决于模型。

如果您不需要区分每个亚马逊平板电脑,您可以使用:

if (Build.MANUFACTURER.equals("Amazon")) {
    //we have an Amazon tablet
}
else {
    //some other device
}

如果您需要确切知道它是哪个设备,可以使用Build.MODEL,例如:

  • Kindle Fire HDX 8.9(第3代)

    if (Build.MODEL.equals("KFAPWI")) {
        //WiFi version
    }
    else if (Build.MODEL.equals("KFAPWA")) {
        //WAN version
    }
    

答案 1 :(得分:2)

你可以使用..

String deviceName = android.os.Build.MODEL;
String deviceMan = android.os.Build.MANUFACTURER;

有关详细信息,请访问android.os.Build

答案 2 :(得分:0)

我建议您检测是否安装了Google Play。因为一些自定义Roms也没有安装Google Play。所以尝试使用以下代码:

private static final String GooglePlayStorePackageNameOld = "com.google.market";
private static final String GooglePlayStorePackageNameNew = "com.google.vending";

public boolean serviceAvailable(Context ctx) {
    boolean googlePlayStoreInstalled= false;
    packageManager = ctx.getPackageManager();
    List<PackageInfo> packages = packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
    for (PackageInfo packageInfo : packages) {
        if (packageInfo.packageName.equals(GooglePlayStorePackageNameOld) ||
            packageInfo.packageName.equals(GooglePlayStorePackageNameNew)) {
            googlePlayStoreInstalled = true;
            break;
        }
    }
    return googlePlayStoreInstalled;
}