簡體   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