Нет обновлений температуры батареи в HTC Hero / Android 2.1

Я пишу приложение для Android, используя старые телефоны Android, предназначенные для мониторинга температуры. Теперь у меня проблема с HTC Hero под управлением Android 2.1 update-1. Он не получает обновления датчика температуры аккумулятора. Это только получает начальное значение. Тем не менее, он получает обновления о подключении внешнего питания. Если внешний источник питания изменен , будет получена новая температура.

Это поведение задается аппаратными средствами, или я могу что-то с этим поделать?

Я использую BroadcastReceiver:

IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, filter);

BroadcastReceiver batteryReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(LOG_TAG, "onReceive, action = " + intent.getAction());

        float temperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 999) / 10f;
        boolean externalPower = (intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0);

        // ...
    }

};

Это отлично работает на Galaxy S4 / Android 4.3.

Как я уже сказал, если внешний источник питания изменяется (зарядное устройство подключено или отключено), всегда вызывается приемник, и принимается новая температура.

Повторная регистрация приемника не помогает.

Я пытался вручную получить Intent, как это через определенные промежутки времени, но температура постоянна (даже если она определенно изменилась).

handleBatteryIntent(registerReceiver(null, filter));

Кажется, что температура обновляется только при изменении состояния внешнего источника питания (EXTRA_PLUGGED).

Я пробовал два других приложения батареи, и у них та же проблема.

0 ответов

Другие вопросы по тегам