繁体   English   中英

如何检测设备是否有传感器以在 Kotlin 中使用指南针?

[英]How to detect if the device has sensor to use compass in Kotlin?

有些设备没有内置传感器来使用指南针

如果手机不支持此功能,我在这里尝试做的是导航或向用户显示消息

我正在尝试这个:

sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
    sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION)
    if (sensor !== null) {
        val intent = Intent(this, MainActivity::class.java)
        startActivity(intent)
    }else{
        val intent = Intent(this, SetProfileActivity::class.java)
        startActivity(intent)
    }

但每次都会收到此错误:

sensorManager.getDefault…(Sensor.TYPE_ORIENTATION) must not be null

我究竟做错了什么?

我只是偶然发现了同样的问题。

这是我找到并为我工作的解决方案:

val pm: PackageManager = context.packageManager
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
  // This device does not have a compass, turn off the compass feature
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM