2013-02-28 32 views
0

首先,對不起我的英文。按照Raghav Sood書中的步驟,我正在爲Android編程增強現實瀏覽器。它的標題是Pro Android Augmented Reality。問題是,當我在我的設備中啓動第9章(名爲Pro Android AR 9並位於https://github.com/RaghavSood/ProAndroidAugmentedReality)的示例時,它可以正常工作,也可以不工作,具體取決於設備的類型。Android增強現實。傳感器讀數不好

在我的索尼愛立信Xperia Arc與Android 4.0.4由Raghav實施的瀏覽器工作得很好。當我使用Android 4.0.3測試華碩Eee Pad Transformer或三星Galaxy Tab中的增強現實瀏覽器時,傳感器的讀數似乎是錯誤的。如果我把焦點放在一個地方(維基百科,twitter或本地標記)並將自己轉向右側,那麼這些景點就會下降。如果我轉向左邊,景點就會上升。如果我想要點移動到左側,我必須傾斜設備使他們的屏幕看起來在地面。按照相同的順序,如果我將這些設備設置爲使屏幕仰望空中,則這些景點將向右移動。

似乎程序混淆了傳感器讀數。任何人都知道如何解決問題?提前致謝。

+0

(我是本書的作者)嗯。 AFAIK,這不應該發生。但是,由於您使用的是平板電腦,因此設備的自然方向是橫向,因此傳感器報告的值可能會被Android反轉。我將嘗試查找平板電腦並將錯誤修正推送到github存儲庫。同時,看看是否翻轉代碼中的軸值。 – 2013-02-28 09:43:43

+0

我會盡力的。謝謝拉格瓦德,你的書很有趣。做得好。 – 2013-02-28 09:49:38

+0

謝謝!希望你覺得它有幫助 – 2013-02-28 09:52:54

回答

0

我做到了。我不知道這是否是一個好的解決方案,但似乎在平板電腦上運行良好。

改變軸到:

SensorManager.remapCoordinateSystem(temp, SensorManager.AXIS_X, SensorManager.AXIS_Y, rotation) 

在SensorActivity似乎解決軸線故障。其他問題是,使用橫向模式將與每個POI關聯的文本轉換爲平板電腦。爲了避免這種情況,我在PaintablePosition類的set方法中使用了條件旋轉修改:

if(drawObj.toString().toLowerCase().contains("paintableboxedtext")) rotation=rotation+270;