我可以在Android上检测物理与虚拟磁场传感器吗?

时间:2016-08-24 19:07:34

标签: android android-sensors

' Moto E'设备没有磁场传感器。然而,他们似乎使用GPS模仿它。但当然,只有你在行动才能真正起作用。我宁愿知道它正在这样做,所以我可以禁用某些功能,或警告用户。

我似乎无法像许多其他设备那样找到一种方法,因为传感器存在'即使是模拟的。

就此而言,该型号也没有陀螺仪。然而,FusedSensors似乎工作得很好(尽管可能不如其他设备那么好)。

感谢任何输入! 戴夫

1 个答案:

答案 0 :(得分:2)

使用的想法:<uses-feature android:name="android.hardware.sensor.compass" android:required="true" />

清单中的

似乎根本没有任何效果。

但是下面的代码确实有用了!

PackageManager manager = getPackageManager();
boolean hasCompass = manager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS);
if (!hasCompass)
{
    Toast toast = Toast.makeText(this, "WARNING: DEVICE HAS NO COMPASS", Toast.LENGTH_LONG);
    toast.show();
}

我想在帖子[问题]中将此归功于指点:How to make sure an android device application supports hardware feature

我应该注意到我在'Moto E 2nd Gen'(没有指南针)和三星Galaxy S7 Edge(有指南针)上试过这个并且它是一致的。 AndroidStudio仿真器都显示为具有指南针,但仿真器设置不允许选择或取消选择该硬件功能(它适用于GPS和其他一些功能)。如果模拟器具有罗盘仿真效果会很好。

戴夫