1、实力展示

2、核心代码分析

就是读取指定文件下,一些cpu信息文件,然后,对里面的数据进行筛选。

有的机器上没有温度显示,大概率是下面的文件列表中,在当前机器上没有读权限,或者就直接没有列表中的文件。

  /*** Scan device looking for CPU temperature in all well known locations*/fun getCpuTemperatureFinder(): Maybe<CpuTemperatureResult> {return Observable.fromIterable(CPU_TEMP_FILE_PATHS).map { path ->val temp = Utils.readOneLine(File(path))var validPath = ""var currentTemp = 0.0if (temp != null) {// Verify if we are in normal temperature rangeif (isTemperatureValid(temp)) {validPath = pathcurrentTemp = temp} else if (isTemperatureValid(temp / 1000)) {validPath = pathcurrentTemp = temp / 1000}}CpuTemperatureResult(validPath, currentTemp.toInt())}.filter { (filePath) -> !filePath.isEmpty() }.firstElement()}/*** Check if passed temperature is in normal range: -30 - 250 Celsius** @param temp current temperature*/private fun isTemperatureValid(temp: Double): Boolean = temp in -30.0..250.0/*** Container for temperature value and path*/data class CpuTemperatureResult(val filePath: String = "", val temp: Int = 0)companion object {// Ugly but currently the easiest working solution is to search well known locations// If you know better solution please refactor this :)private val CPU_TEMP_FILE_PATHS = listOf("/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp","/sys/devices/system/cpu/cpu0/cpufreq/FakeShmoo_cpu_temp","/sys/class/thermal/thermal_zone0/temp","/sys/class/i2c-adapter/i2c-4/4-004c/temperature","/sys/devices/platform/tegra-i2c.3/i2c-4/4-004c/temperature","/sys/devices/platform/omap/omap_temp_sensor.0/temperature","/sys/devices/platform/tegra_tmon/temp1_input","/sys/kernel/debug/tegra_thermal/temp_tj","/sys/devices/platform/s5p-tmu/temperature","/sys/class/thermal/thermal_zone1/temp","/sys/class/hwmon/hwmon0/device/temp1_input","/sys/devices/virtual/thermal/thermal_zone1/temp","/sys/devices/virtual/thermal/thermal_zone0/temp","/sys/class/thermal/thermal_zone3/temp","/sys/class/thermal/thermal_zone4/temp","/sys/class/hwmon/hwmonX/temp1_input","/sys/devices/platform/s5p-tmu/curr_temp")}

源码来自 github

或者 csdn下载

或者参考源码:

HardwarePropertiesManagerTest.java

使用   HardwarePropertiesManager 进行属性获取,但是这个需要 system 权限。

android 获取cpu温度相关推荐

  1. Android获取cpu和内存信息、网址的代码

    android获取手机cpu并判断是单核还是多核 /**  * Gets the number of cores available in this device, across all proces ...

  2. RK3588 实现温控风扇之获取cpu温度(一)

    RK3588 实现温控风扇系列文章 第一章: RK3588 实现温控风扇之如何获取cpu温度(一) 第二章: RK3588 实现温控风扇之pwm驱动调试(二) 第三章: RK3588 实现温控风扇之通 ...

  3. windows用c++获取cpu温度

    很抱歉,获取 CPU 温度并不是一件简单的事情,因为 Windows 操作系统本身不提供直接获取 CPU 温度的 API.你可以使用第三方软件来读取 CPU 温度信息,然后通过 Windows API ...

  4. Linux系统获取CPU温度

    Linux系统获取CPU温度 摘自:https://jingyan.baidu.com/article/cbf0e500407d072eab289343.html 各位好,本篇将简单介绍如何在不同系列 ...

  5. C# 获取CPU 温度 的两种方式

    上次接手了一个需要对服务器的检测系统软件,但是在获取CPU温度的时候总是出问题,查找了很多的资料,总结了以下两种方法,是比较常见的 //第一种方法 就是传统的 wimi 方式获取 ,需要引进一个命名空 ...

  6. 关于获取CPU温度的CSDN帖子

    关于获取CPU温度的CSDN帖子 (2008-02-19 13:27:28) 1:各位高手,回句话啊!!cpu的温度放在那里了!!有谁知道!! bios里面那个对么??可以通过读bios来得到cpu的 ...

  7. 使用python获取cpu温度

    import clr import time #获取cpu温度 clr.AddReference(r'D:\temp\OpenHardwareMonitor\OpenHardwareMonitorLi ...

  8. android 采集cpu温度,阳光沙滩博客-Android开发如何读取到CPU,内存等硬件温度信息?...

    Android开发如何读取到CPU,内存,温度等硬件信息? 最近在玩跑跑卡丁车,有一个面板显示着电呀,CPU使用,内存等情况 于是就来写这篇文章啦 以前我也做过CPU温度,频率之类的数据读取,那时我做 ...

  9. Android获取CPU信息(CPU名字和主频)

    文章参照自:http://www.2cto.com/kf/201206/134236.html 在 Android 中,我们可以通过读取一些系统文件来获得手机的 cpu信息 (CPU 名字 和CPU ...

最新文章

  1. linux进程间通信:system V 信号量 生产者和消费者模型编程案例
  2. 华为深度学习新模型DeepShift:移位和求反代替乘法,神经网络成本大降
  3. TCP超时与重传机制与拥塞避免
  4. 省AK赛——J - Happy Great BG
  5. 【NLP】使用Transformer模型进行文本分类
  6. uva 10771——Barbarian tribes
  7. sql dbcc_SQL Server中的DBCC命令的概念和基础
  8. 【oracle】changePerm.sh
  9. 搭建Jetbrains家族IDE授权服务器
  10. day14内置函数作业详解
  11. 2万字软件测试面试题干货带答案,反手我就一个收藏
  12. 八年级作文-断了的弦
  13. 项目实战|基于STM32的无刷电机开环控制
  14. 一年节省费用100万,AI导航误差不到1米,杭州奥体“大小莲花”智慧场馆大揭秘...
  15. python能够设置标签背景色的属性是_Python Pmw EntryField背景色属性
  16. 文化袁探索专栏——消息分发机制
  17. 证件照换底色的2个简单方法分享
  18. Python编程之Ubuntu下信号模块signal
  19. (C语言详解)11-散列1 电话聊天狂人(小白实现详细解释)
  20. 疫情持续肆虐,Jelurida为抗疫项目保驾护航

热门文章

  1. Linux下录屏软件obs安装
  2. Google Earth Engine(GEE)——Landsat ETM+ to OLI 协调
  3. GAP:Learning Contextual Representations for Semantic Parsing with Generation-Augmented Pre-Training
  4. (EPROCESS/KPROCESS/ETHREAD/KTHREAD)进程与线程内核层中的结构
  5. docker安装mysql8 并且忽略大小写问题解决
  6. 操作系统:存储器管理(下)
  7. (一)Yocto的介绍
  8. html点击超链接启动邮件客户端创建电子邮件
  9. 第一次git拉取代码到本地及身份验证失败踩坑
  10. PDFlib 开发指南