确定设备是否为Kindle

时间:2013-02-09 08:03:16

标签: android kindle

我想在亚马逊的AppStore上提供Android应用程序。我的应用程序有一些基于位置的功能和相机功能,如果用户的设备是Kindle,我需要禁用它。有没有办法以编程方式检测用户的设备是否是Kindle?我知道我可以为Kindle和非Kindle构建不同的版本,但我想我首先会问是否有办法在代码中检测到这一点。

4 个答案:

答案 0 :(得分:13)

要检查设备是否具有某项功能,您PackageManager.hasSystemFeature(String name)就足够了。

要检查位置和相机,您可以使用FEATURE_LOCATIONFEATURE_CAMERA作为hasSystemFeature的参数

如果您仍需要了解设备的硬件,可以查看 android.os.Build.MANUFACTURER android.os.Build.BRAND android.os.Build.BOARD android.os.Build.DEVICE

答案 1 :(得分:10)

如果您想检测Kindle,请使用Build.MANUFACTURER检查制造商(亚马逊)并使用Build.MODEL进行建模。在Kindle的情况下,模型的价值会有所不同,可以是KFTT,KFOT,Kindle Fire等。See this for model nos.

答案 2 :(得分:5)

您可以使用此方法识别Kindle设备

public static boolean isKindle(){
        final String AMAZON = "Amazon";
        final String KINDLE_FIRE = "Kindle Fire";

        return (Build.MANUFACTURER.equals(AMAZON) && Build.MODEL.equals(KINDLE_FIRE) ) || Build.MODEL.startsWith("KF");
} 

答案 3 :(得分:1)

我知道这篇文章很老,但这种方法是错误的。如果您对Kindles的关注与硬件相关,即Kindles没有相机或相机支持,那么您需要检查相机支持而不是设备类型。如果其他设备不提供相机支持怎么办?不是建议的答案,试试这个

public static boolean isCameraAvailable(Context context) {
    PackageManager packageManager=context.getPackageManager();
    if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) {
        // this device has a camera 
        return true; 
    } else { 
        // no camera on this device 
        return false; 
    } 
} 

这比检测设备是否是一个点燃要好得多,否则做另一个特定于点燃的构建。