' Moto E'设备没有磁场传感器。然而,他们似乎使用GPS模仿它。但当然,只有你在行动才能真正起作用。我宁愿知道它正在这样做,所以我可以禁用某些功能,或警告用户。
我似乎无法像许多其他设备那样找到一种方法,因为传感器存在'即使是模拟的。
就此而言,该型号也没有陀螺仪。然而,FusedSensors似乎工作得很好(尽管可能不如其他设备那么好)。
感谢任何输入! 戴夫
答案 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和其他一些功能)。如果模拟器具有罗盘仿真效果会很好。
戴夫