2013-02-28 1 views
0

Прежде всего, извините за мой английский. Я программирую браузер расширенной реальности для Android, следуя инструкциям в книге Рагхава Суда. Его название - Pro Android Augmented Reality. Дело в том, что когда я запускаю пример главы 9 (названный Pro Android AR 9 и находящийся в https://github.com/RaghavSood/ProAndroidAugmentedReality) на моих устройствах, он работает нормально или не зависит от типа устройства.Android дополненной реальностью. Плохие датчики, считывающие

В моем Sony Ericsson Xperia Arc с Android 4.0.4 браузер, выполненный Raghav, работает очень хорошо. Когда я тестирую браузер расширенной реальности в Asus Eee Pad Transformer или в Samsung Galaxy Tab, оба из них с Android 4.0.3, показания с датчиков кажутся неправильными. Держа планшеты в ландшафтном режиме передо мной, если я сосредоточусь на одном месте (википедия, твиттер или локальные маркеры) и повернитесь направо, пятна снизятся. Если я повернусь влево, пятна будут расти. Если я хочу, чтобы пятна перемещались влево, я должен наклонять устройства, чтобы их экраны выглядели на земле. В том же порядке, если я поворачиваю устройства, делающие экраны в прямом эфире, пятна будут перемещаться вправо.

Похоже, программа запутывает показания датчиков. Кто-нибудь знает, как решить проблему ??? Заранее спасибо.

+0

(Я автор книги, о которой идет речь) Хм. AFAIK, этого не должно быть. Тем не менее, возможно, что, поскольку вы используете планшеты, значения, отображаемые датчиками, инвертируются Android, поскольку естественная ориентация устройства является ландшафтным. Я попытаюсь найти планшет и вытолкнуть исправление в репозиторий github. Тем временем, посмотрите, работает ли перелистывание значений оси в коде. –

+0

Я попробую. Спасибо Рагваду, ваша книга действительно интересна. Отличная работа. –

+0

Спасибо! Упование вы считаете полезным –

ответ

0

Я сделал это. Я не знаю, является ли это хорошим решением, но, похоже, отлично работает на планшетах.

Изменение ось:

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

в SensorActivity кажется исправить неисправность оси. Другая проблема заключалась в том, что текст, связанный с каждой POI, появился в планшетах с использованием ландшафтного режима. Чтобы этого избежать, я использовал модификацию условного вращения в методе набора классов PaintablePosition:

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

 Смежные вопросы

  • Нет связанных вопросов^_^