android – 如何获得CPU温度?

我知道以某种方式可以获得cpu的温度,因为我下载了一个在无根设备中执行此操作的应用程序.怎么做?

编辑:该应用程序称为A1 cpu工具.我花了几天时间寻找答案.

edit2:这是我试过的代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
    Sensor TempSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
    mSensorManager.registerListener(temperatureSensor,TempSensor,SensorManager.SENSOR_DELAY_FASTEST);
}

private SensorEventListener temperatureSensor = new SensorEventListener(){

    @Override
    public void onAccuracyChanged(Sensor sensor,int accuracy) {
        // Todo Auto-generated method stub

    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        // Todo Auto-generated method stub
        float temp = event.values[0];
        Log.i("sensor","sensor temp = " + temp);
    }
};

解决方法

如果设备未通过任一温度传感器暴露cpu温度(即,要求温度传感器类型或AMBIENT_TEMPERATURE不提供任何内容),您将无法以标准方式读取它.当然,如果它没有广泛分发,那么就不会以非标准方式进行,这可能适合您的应用.

如果您知道要查看的位置,可以在/ sys / devices / platform中读取设备文件.如果你运行adb shell并cd进入该文件夹,你就有很好的机会找到| grep temp为您提供代表温度传感器的文件.

这些文件也不仅仅适用于cpu – 例如,可以通过阅读/sys/devices/platform/omap_i2c.1/i2c-1/1-0055/来访问我的Google Glass的电池温度传感器. POWER_SUPPLY / bq27520-0 /温度.

看看这条路径,很清楚为什么你不应该这样做并期望它能在所有设备上运行 – 文件的路径和格式因设备而异.然而,在紧要关头,这是一种快速而肮脏的方式来完成工作.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...