想了解这个机制。当充电、充电完成已经拔出电源时,android是怎么知道的?如果要访问驱动,是哪个驱动完成的工作?驱动名称?
解决方案 »
- download文件执行时会自动跳过“使用IO流读取数据”那行代码,这是问什么?
- ListView 分页显示怎么设计
- 如何移动文件并重命名
- android SurfaceView 显示在类似弹出窗里
- 求大虾:安卓系统怎么获取某个应用程序耗电的百分比呢?
- 请教Android高手问题,急!!!希望能速回 (其实就是一个编辑框和一个文本框,一个按钮,然后点击按钮后,文本框中显示编辑框中的内容,有什么好的意见告知一下)
- 准备转入android开发,开发android一般用的什么框架?
- 在做极光推送的时候如何能接受推送的内容,并且使用讯飞语音将内容读出.
- 【求助】项目中自己写的类与导入jar包里的类重复了,求解
- Android studio 中如何把类(.java)中的整型变量传入到布局文件(.xml)中
- android中AR的实现问题
- context应该怎么用?编译报错
Intent.ACTION_BATTERY_CHANGED的BroadcastReceiver,你注册该广播就可以收到了
Android-2.3\frameworks\base\services\java\com\android\server\BatteryService.java
Android-2.3\frameworks\base\services\jni\com_android_server_BatteryService.cpp
里面定义了获取状态的方法
static jint getBatteryStatus(const char* status)
{
switch (status[0]) {
case 'C': return gConstants.statusCharging; // Charging
case 'D': return gConstants.statusDischarging; // Discharging
case 'F': return gConstants.statusFull; // Not charging
case 'N': return gConstants.statusNotCharging; // Full
case 'U': return gConstants.statusUnknown; // Unknown
default: {
LOGW("Unknown battery status '%s'", status);
return gConstants.statusUnknown;
}
}
}static jint getBatteryHealth(const char* status)
{
switch (status[0]) {
case 'D': return gConstants.healthDead; // Dead
case 'G': return gConstants.healthGood; // Good
case 'O': {
if (strcmp(status, "Overheat") == 0) {
return gConstants.healthOverheat;
} else if (strcmp(status, "Over voltage") == 0) {
return gConstants.healthOverVoltage;
}
LOGW("Unknown battery health[1] '%s'", status);
return gConstants.healthUnknown;
}
case 'U': {
if (strcmp(status, "Unspecified failure") == 0) {
return gConstants.healthUnspecifiedFailure;
} else if (strcmp(status, "Unknown") == 0) {
return gConstants.healthUnknown;
}
// fall through
}
default: {
LOGW("Unknown battery health[2] '%s'", status);
return gConstants.healthUnknown;
}
}
}