我一直在我的项目中使用Google服务,但亚马逊平板电脑不支持Google服务,所以如果我想将应用发布到亚马逊商店,我需要删除Google服务。
我不想将项目划分为“For Google Play”和“For Amazon Store”
我使用android.os.Build.MODEL
获取设备名称,但我不确定它是否安全?
我可以在项目中检测亚马逊平板电脑吗?
if(is Amazon) {
//do something
}
else {
//do something
}
答案 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;
}