电池电量是怎么一层层读取的 怎么抓到电池电量的剩余值,又是怎么对应显出来的呢?底层到上层的流程是? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 android的电量在发生变化时是会进行Intent广播的,你只要注册一个BroadcastReceiver组件就可以接收到,Intent.ACTION_BATTERY_CHANGED(电池电量发生改变时)、Intent.ACTION_BATTERY_LOW(电池电量达到下限时)、和Intent.ACTION_BATTERY_OKAY(电池电量从低恢复到高时) 原来是这样, 跟WinCE有点像. BroadcastReceiver batteryReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //intent里是电池的各种 } }; IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); registerReceiver(batteryReceiver, filter); 谢谢,但是不仅仅想知道的是java层面 原来是这样, 跟WinCE有点像. 流程大致 是这样的在内核驱动中,电池驱动先通过AD芯片采样电池电压参数----》经转换做成电池曲线,这个曲线的内容有电池电量(90%.80%.70%.60%.50%.等等,也可以做到精确为1%),---》在驱动中确定好电池的属性,并注册写到sysfs里,以使用户空间可以得到有关电源的信息。---》这些数据通过JNI传到上层,BATTERYSERVICE.JAVA通过读取SYSFS,得到电池的所有属性。--》针对这些属性做一些处理。低电量发送广播等,update等等。大致 应该是这样,如果有不对的地方,请大家指明。谢谢 唯一靠谱的就是jzp0409,其他的只要谈到底层驱动的都太不靠谱,还有检测电流的,真晕了,不知道不要乱说,省的误导别人,可以去驱动层里看看,到底检测是电流还是电压。AD转换模块也要看看,到底是转换的电流还是电压,一般微处理器有关的是用的SAR AD转换器,如果转换的是电流,那么比较器那一块怎么把电流进行比较?对放大器那一块看过没有。逻辑就分析不过去。 求助:怎么灭屏不休眠 咨询Android代码运行机制 handler怎么传数据? 如何改變camera preview的畫面? 如何查看某个类有哪些permission 新人报道,请问哪里可以下载到andiord的os android双显与视频播放 Android 如何自动测试 睡眠和唤醒 android里ListView中的子控件如何响应item的事件? 用JNI实现用adb相关的命令怎么没有实现操作,请指教 使用TranslateAnimation播放动画时留下痕迹如何解决 求助:强制横屏时 自动弹出PopupWindow报错
@Override
public void onReceive(Context context, Intent intent) {
//intent里是电池的各种
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, filter);
谢谢,但是不仅仅想知道的是java层面
在内核驱动中,电池驱动先通过AD芯片采样电池电压参数----》经转换做成电池曲线,这个曲线的内容有电池电量(90%.80%.70%.60%.50%.等等,也可以做到精确为1%),---》在驱动中确定好电池的属性,并注册写到sysfs里,以使用户空间可以得到有关电源的信息。---》这些数据通过JNI传到上层,BATTERYSERVICE.JAVA通过读取SYSFS,得到电池的所有属性。--》针对这些属性做一些处理。低电量发送广播等,update等等。
大致 应该是这样,如果有不对的地方,请大家指明。谢谢