Как я могу контролировать температуру на Samsung Galaxy S8 через код? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь получить доступ к температуре процессора устройств Android, в частности, Samsung Galaxy S8 (для использования с GearVR), чтобы отображать его в интерфейсе приложения.Датчики TEMPERATURE и AMBIENT_TEMPERATURE, по-видимому, недоступны, если только я не сделал что-то не так в своем коде?

Я попытался получить датчики AMBIENT_TEMPERATURE и TEMPERATURE по умолчанию из диспетчера датчиков, но оба возвращают ноль.

sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
ambTemperatureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
if(ambTemperatureSensor == null)
        message += "No ambient temperature sensor...\n";
temperatureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
if(temperatureSensor == null)
        message += "No temperature sensor...\n";

Я ожидал, что датчик AMBIENT_TEMPERATURE появится и даст мне доступ к температуре процессора, но когда это не сработало, я подумал, что вместо этого будет доступен устаревший датчик TEMPERATURE.Нужно ли что-то делать перед вызовом getDefaultSensor?

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Датчик AMBIENT_TEMPERATURE присутствует только в Galaxy S4 и Galaxy Note 3. Предполагается, что этот датчик возвращает температуру окружающей среды, а не температуру процессора. Ваше устройство не имеет датчика температуры окружающей среды. Вам нужно искать способ считывания данных с внутренних датчиков процессора или батареи вашего устройства.

Может быть, это то, что вы ищете:

как получить текущую температуру процессора программно во всех версиях Android?

1 голос
/ 21 мая 2019

Не каждый датчик существует на каждом устройстве.Ваше устройство может вообще не иметь температурного датчика.Это один из наиболее вероятных, которых не существует, так как данные, как правило, неверно истолкованы и не очень полезны.

...