我想在亚马逊的 AppStore 上提供一个 Android 应用程序。我的应用有一些基于位置的功能和相机功能,如果用户的设备是 Kindle,我需要禁用这些功能。有没有办法以编程方式检测用户的设备是否是 Kindle?我知道我可以为 Kindle 和非 Kindle 构建不同的版本,但我想我首先要问是否有办法在代码中检测到这一点。
问问题
3300 次
4 回答
13
要检查设备是否具有特定功能,您PackageManager.hasSystemFeature(String name)
的情况应该足够了。
要检查位置和相机,您可以使用FEATURE_LOCATION
和FEATURE_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 回答