2014-11-07 56 views
17

我正在使用Google Cardboard(它的HeadTracker類)來檢測AR應用程序中有關設備旋轉的某些內容。它工作得很好。Google Cardboard VR傳感器

但是,在某些設備上,它不起作用(沒有任何反應)。我認爲這是因爲他們沒有必要的傳感器。我的問題:

1)我想在運行時檢測當前設備是否支持HeadTracker,即它有必要的傳感器可用。爲此,我需要知道HeadTracker使用哪些傳感器,以便我可以查詢這些傳感器是否存在。這些傳感器是什麼?

2)有沒有在AndroidManifest中指定必要的傳感器的方法?據我所知,沒有辦法。因此,如果用戶下載我的應用程序,應用程序將不得不在運行時通知用戶他的設備不受支持。這不好。有什麼想法嗎?

+0

我正在做這種類型的任務..但沒有獲得成功..你能幫助我..嗎?我已經完成了,創建一個VR表面並在其中設置圖像。但我希望這個圖像與頭部運動一起工作。我怎麼能這樣做.. – Amardeepvijay 2014-11-14 07:02:11

+0

我假設你已經有清單中的'uses-feature android:glEsVersion =「0x00020000」'?你能否詳細說明「什麼都沒有發生」?你的意思是你沒有得到任何加速計數據? – 2014-11-14 23:43:01

+0

是的,沒有數據。 – 2014-11-16 11:04:12

回答

17

谷歌紙板的網站有一個設備compatibility list: 這似乎有些不完整,所以我試圖看看Cardboard.jar的source code。 HeadTracker.java似乎有以下邏輯:

SensorManager sensorManager = (SensorManager)HeadTracker.this.mContext.getSystemService("sensor"); 

for (int sensorType : HeadTracker.INPUT_SENSORS) { 
    Sensor sensor = sensorManager.getDefaultSensor(sensorType); 
    sensorManager.registerListener(HeadTracker.this.mSensorEventListener, sensor, 0, handler); 
} 

隨着在同一文件中定義爲

{TYPE_ACCELEROMETER,TYPE_GYROSCOPE} INPUT_SENSORS;

我不確定HeadTracker是否可以在僅使用其中一個傳感器的手機上工作。我的猜測是,兩者都是必要的。

您的應用程序可能需要以與您的清單以下行運行(甚至是在Android市場上可見的)某些審查:

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" /> 
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" /> 

你也可以檢查傳感器提供給您的在運行時使用SensorManager的應用程序 public Sensor getDefaultSensor (int type)函數。

+1

它幫了很多,謝謝。對不起,我錯過了賞金截止日期(我昨天離開了),所以它似乎已被系統自動授予。 – 2014-11-17 10:05:10

+0

雖然它聽加速度計,但獲得預測的gl矩陣似乎使用最後的陀螺儀值,如果設備沒有陀螺儀,它將始終爲零。讓我知道,如果你有紙板應用程序只與加速度計 – Dileep 2014-12-29 15:34:59

+0

工作,你發佈了兼容性列表上的錯誤鏈接。我在哪裏可以找到這個列表? – 2015-05-13 12:32:54

7

谷歌紙板耳機將無法使用只是加速度計,它需要陀螺儀。

加速計可以檢測施加在手機上的力。這包括讀取地球的引力,因此手機可以估計「下」的位置。但是加速度計無法準確地告訴你在三維空間中你的方向是什麼,它只能根據它讀取的力量來近似。

這對VR來說精度太低,所以這就是爲什麼你需要陀螺儀。

如果您在使用非陀螺儀手機時無法工作,您可以根據加速度計數據編寫一段近似手機方向的代碼,但請記住它離真正令人滿意的距離VR體驗。

0

使用Fibrum SDK如果你想讓你的遊戲不帶陀螺儀的手機工作

例如嘗試

空間X獵人VR:

https://play.google.com/store/apps/details?id=com.creation3d.spacexhuntervr

VR碗:

https://play.google.com/store/apps/details?id=com.creation3d.vrbowl

和來自Fibrum的遊戲

+0

歡迎來到Stack Overflow!雖然這可能會在理論上回答這個問題,[這將是更可取的](// meta.stackoverflow.com/q/8259)在這裏包括答案的基本部分,並提供參考鏈接。 – manetsus 2016-03-17 02:05:16

相關問題