согласно андроида спецификации все датчики должны иметь их оси ориентированных таким же образом, как указано в:Мобильный телефон 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;
}
у меня есть тщательно проверили это.
Кто-нибудь еще заметил это?
Я согласен о физических ограничениях и возможностях программного обеспечения для компенсации. Однако, похоже, что MB300 запускает андроид официально, так что не следует ли это сопоставление в рамках платформы инженерами портирования? Кажется, неправильно, что плакат, похоже, должен иметь дело с ним в том, что представляется кодом приложения. –
Я согласен с Крисом выше. Если я кодирую программное обеспечение для Android, я работаю в предположении, что все устройства Android будут вести себя последовательно. Как я могу узнать, какая из 1000 сотовых телефонов потребует определенных исправлений? Я даже не знаю, упоминается ли проблема только в конкретном телефоне, который у меня есть, или во всех телефонах этой модели. – Roland
Точно! Ответственность ODM/OEM-подразделения заключается в выявлении и устранении этого. – TheCodeArtist