首页 > 解决方案 > 尽管 Pixel 2 存在于传感器列表中,但无法在 Pixel 2 上获取磁场传感器

问题描述

我尝试使用以下代码获取磁场传感器,已获得精细位置访问权限:

sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
magneticSensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

我用谷歌像素 2 测试我的应用程序,结果 sensorManager 为空,当用 TYPE_MAGNETIC_FIELD_UNCALIBRATED 替换传感器类型时也是如此。

但是,当我使用以下代码获取 Pixel 2 上的传感器列表时:

List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL);

我在列表中看到“霍尔效应传感器”,我认为是磁场传感器,传感器对象的描述如下:

{Sensor name="AK8789 Hall Effect", vendor="AKM", version=1, type=33171016, maxRange=1.0, resolution=1.0, power=0.001, minDelay=0}

编辑:用指南针应用程序测试了我的设备,证明磁传感器可能有缺陷。因此,如果传感器有缺陷,上面的代码将返回 null。我还用另一个像素设备测试了代码,发现指南针的传感器称为磁力计,而不是霍尔效应传感器

标签: javaandroidsensormanager

解决方案


推荐阅读