![](/img/trans.png)
[英]Android Sensor.TYPE_MAGNETIC_FIELD Vs WindowsPhone Sensor.TYPE_MAGNETIC_FIELD
[英]Can I detect physical vs virtual magnetic field sensor on Android?
“ Moto E”设备没有磁场传感器。 但是他们似乎使用GPS来模拟它。 但是,当然,只有在您移动时,它才真正起作用。 我希望知道它正在执行此操作,因此我可以禁用某些功能或警告用户。
我似乎找不到像使用其他许多设备那样的方法,因为即使被仿真,传感器也会“存在”。
因此,该型号也没有陀螺仪。 然而,FusedSensors似乎工作得很好(尽管可能不如其他设备那样好)。
感谢您的输入! 戴夫
使用的想法: <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();
}
我想在[问题]中将此归功于pointtofuture: 如何确保android设备应用程序支持硬件功能
我应该注意的是,我在“ Moto E 2nd Gen”(没有罗盘)和Samsung Galaxy S7 Edge(有罗盘)上进行了此操作,它是一致的。 所有的AndroidStudio模拟器都显示为具有指南针,但模拟器设置不允许选择或取消选择该硬件功能(对于GPS和其他功能则如此)。 如果仿真器具有指南针仿真,那就太好了。
戴夫
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.