battery信息的获取

这里一位仁兄写的文章,讲得比较透。

http://blog.sina.com.cn/s/blog_66a6a5ec0100n6ej.html

 

我这里就关注怎么去获取几个核心信息:电量、电压、温度等。

先看一下/frameworks/base/services/jni/com_android_server_BatteryService.cpp的register_android_server_BatteryService方法。可以看到,每个信息都是从相应的文件中读取到的。

/frameworks/base/services/java/com/android/server/BatteryService.java中注册一个UEventObserver,每次电池信息有更新时,会调用update(),update()方法分两步,先调用native_update()方法通过JNI读取上面几个文件中的信息,然后通过Broadcast广播出去。

 

再看一下应用程序层面如何获取这些信息的。

/packages/apps/Settings/src/com/android/settings/BatteryInfo.java文件中,在onResume()方法中通过registerReceiver(mIntentReceiver, mIntentFilter);注册一个Receiver,最终在onReceive()方法中获取信息。

你可能感兴趣的:(android,server,jni)