如何检测设备是不是有传感器可以在 Kotlin 中使用指南针?
Posted
技术标签:
【中文标题】如何检测设备是不是有传感器可以在 Kotlin 中使用指南针?【英文标题】:How to detect if the device has sensor to use compass in Kotlin?如何检测设备是否有传感器可以在 Kotlin 中使用指南针? 【发布时间】:2021-11-15 05:29:43 【问题描述】:有些设备没有内置传感器来使用指南针
如果手机不支持此功能,我在这里要做的是导航或向用户显示消息
我正在尝试这个:
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
我做错了什么?
【问题讨论】:
仍在寻找答案.. 【参考方案1】:我只是偶然发现了同样的问题。
这是我找到并为我工作的解决方案:
val pm: PackageManager = context.packageManager
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS))
// This device does not have a compass, turn off the compass feature
【讨论】:
以上是关于如何检测设备是不是有传感器可以在 Kotlin 中使用指南针?的主要内容,如果未能解决你的问题,请参考以下文章
给定 APK 文件,我如何检测应用程序是不是是用 Kotlin 编写的?