Датчик освещенности на Nexus One возвращает только два разных значения

Я пытаюсь прочитать значения датчика освещенности моего Nexus One, но получаю только следующие значения:

10.0

225.0

а в некоторых случаях некоторые значения намного выше.

Используемый код:

sensorManager = (SensorManager) context
                .getSystemService(Context.SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

        listener = new SensorEventListener() {

            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
            }

            @Override
            public void onSensorChanged(SensorEvent event) {
                 Log.d(Constants.TAG, "Brightness: " + event.values[0]);

            }

        };
        sensorManager.registerListener(listener, sensor,
                SensorManager.SENSOR_DELAY_NORMAL);

    }

У кого-нибудь есть опыт работы с датчиком освещенности на Nexus One или другом Android-устройстве? Является ли мой код правильным способом чтения значений? Как я могу получить лучшие и более точные значения?


person Jonathan Roth    schedule 13.08.2010    source источник


Ответы (1)


Ваш код выглядит нормально. Я получал такие значения: 10, 225, 320, 640, 1280, 2600, 3200, 10240. Но мне действительно нужно было направить устройство на солнце, чтобы получить более высокие значения.

Редактировать: из характеристики датчика освещенности, которую можно получить на моем телефоне с помощью Android API, 10240 — это максимальное значение, которое может вернуть этот датчик.

person inazaruk    schedule 22.10.2010
comment
ты прав. дело в том, что я просто тестировал свое приложение в пасмурные дни или вечером. Наши глаза работают логарифмически, а устройство — нет. - person Jonathan Roth; 23.10.2010