繁体   English   中英

为什么我的Sensor.TYPE_ROTATION_VECTOR和Sensor.TYPE_GAME_ROTATION_VECTOR为空?

[英]Why do I get null for Sensor.TYPE_ROTATION_VECTOR and Sensor.TYPE_GAME_ROTATION_VECTOR?

我有一个Yureka手机, 从它的规格中我可以看到它至少有一个加速度计和一个陀螺仪。

我从网上发现TYPE_ROTATION_VECTOR需要加速度计,陀螺仪和磁力计。 由于我没有磁力计,也许因此,我无法获得此传感器。

但是,从文档看来, TYPE_GAME_ROTATION_VECTOR不需要磁力计,那为什么我也没有得到该传感器?

当用户试图将其平放在手机上时,我正在尝试使用此传感器来测量手机屏幕相对于地面的倾斜角度。

首先,您可以尝试使用下面的代码来打印出设备上所有传感器的信息。 如果未打印出传感器,则该传感器不可用。

List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(int i=0; i<gravSensors.size(); i++) {
    // print out sensors information
}

然后,即使您具有加速度计和陀螺仪,仍可能不支持TYPE_GAME_ROTATION_VECTOR。 这是因为它是一个软件传感器,并且是由Android系统从其他传感器的数据中得出的。 可能还有其他因素决定软件传感器的可用性,例如频率,能耗,可靠性。 这样,您可能需要使用可以从传感器获取的原始数据自己导出其他值。

希望这可以帮助!

暂无
暂无

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

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