Android, используя аппаратный компас - PullRequest
3 голосов
/ 04 июня 2010

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

Насколько я понимаю, GPS будет обновлять вашу ориентацию только при движении. Я бы хотел, чтобы информация была обновлена ​​независимо от того, переезжаете вы или нет. Я пытался заставить устройство думать, что оно движется, устанавливая скорость на постоянное значение 10, но подшипник всегда возвращает 0.0.

Моим устройством для тестирования (на данный момент) является HTC Tattoo. У него есть компас, так что это не проблема. Итак, мой вопрос, есть ли способ заставить подшипник обновляться с использованием аппаратного компаса или нет? независимо от того, переезжаете ли вы или нет?

1 Ответ

2 голосов
/ 04 июня 2010

Вы видели этот пример кода ? Здесь SensorListener используется для запроса ориентации:

mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
mListener = new SensorListener() {
    public void onSensorChanged(int sensor, float[] values) {
        if (Config.LOGD) Log.d(TAG, "sensorChanged (" + values[0] + ", " + values[1] + ", " + values[2] + ")");
        mValues = values;
        if (mView != null) {
            mView.invalidate();
        }
    }
mSensorManager.registerListener(mListener, 
                    SensorManager.SENSOR_ORIENTATION,
                    SensorManager.SENSOR_DELAY_GAME);

Хорошо, это устаревший код. Теперь у SensorManager есть метод getOrientation(), который можно использовать. Это действительно нуждается в матрице вращения, хотя. См. здесь для примера .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...