2010-11-12 3 views
1

согласно андроида спецификации все датчики должны иметь их оси ориентированных таким же образом, как указано в:Мобильный телефон MB300: датчик магнитного поля установлен неправильно?

http://developer.android.com/reference/android/hardware/SensorEvent.html

У меня есть два Motorola телефоны: MB300 и Motorola Flipout.

В откидке датчик магнитного поля установлен правильно. Но в mb300 они поменяли оси X и Y. При тестировании я подтвердил, что акселератор правильно установлен на обоих телефонах, и значения согласуются с друг на друге. Но относительно магнитного поля датчиков значения не согласны, но они начали слишком согласны после того, как я выполнил следующую операцию на MB300:

(данные являются SensorEvent.values ​​массив)

if (type == Sensor.TYPE_MAGNETIC_FIELD) { //becauseof mb300 phone 
    float swap; 
    swap = -data[1]; //x = -y 
    data[1] = data[0]; //y = x 
    data[0] = swap; 
} 

у меня есть тщательно проверили это.

Кто-нибудь еще заметил это?

ответ

0

Монтаж всех датчиков IC в той же ориентации
часто невозможен на мобильных телефонах. Из-за небольшого пространства
доступно для использования во многих аппаратных средствах, мы часто встречаем
ситуацию, которую вы описываете.

Позвольте мне сказать, что в этом нет ничего «неправильного».

После того, как вы правильно поменяли оси (в драйвере/HAL)
Рамка для Android всегда будет иметь правильные данные.

Не будет «побочных эффектов», если вы поменяли оси соответственно.

С уважением
CVS @ 2600Hertz

+0

Я согласен о физических ограничениях и возможностях программного обеспечения для компенсации. Однако, похоже, что MB300 запускает андроид официально, так что не следует ли это сопоставление в рамках платформы инженерами портирования? Кажется, неправильно, что плакат, похоже, должен иметь дело с ним в том, что представляется кодом приложения. –

+0

Я согласен с Крисом выше. Если я кодирую программное обеспечение для Android, я работаю в предположении, что все устройства Android будут вести себя последовательно. Как я могу узнать, какая из 1000 сотовых телефонов потребует определенных исправлений? Я даже не знаю, упоминается ли проблема только в конкретном телефоне, который у меня есть, или во всех телефонах этой модели. – Roland

+0

Точно! Ответственность ODM/OEM-подразделения заключается в выявлении и устранении этого. – TheCodeArtist

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