7

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

4

4 回答 4

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

于 2013-02-09T08:08:04.407 回答
10

如果您想检测 Kindle,请使用 Build.MANUFACTURER 检查制造商(亚马逊)并使用Build.MODEL进行建模。Kindle 的型号值会有所不同,可以是 KFTT、KFOT、Kindle Fire 等。型号见这里。

于 2013-02-09T08:15:03.347 回答
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");
} 
于 2015-08-04T11:42:56.410 回答
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; 
    } 
} 

这比检测设备是否是kindle要好得多,否则为kindle做另一个构建。

于 2015-04-15T23:32:45.437 回答