哪个传感器负责Kotlin中的指南针功能?



我有一个指南针页面在我的应用程序,但据我所知,有一些设备不支持指南针(没有内置传感器)

我在这里要做的是将用户导航到另一个页面,以防他们的设备中没有传感器,如下所示:

val msensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
if (msensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).size > 0) {
} else {
}

但我不确定哪种传感器类型负责罗盘功能

以上代码正确吗?

对于罗盘功能,您必须检查Sensor.TYPE_MAGNETIC_FIELD:

sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if (sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null){
// Success! There's a magnetometer.
} else {
// Failure! No magnetometer.
}