[android][error] BatteryService 패치
임베디드/Android 2011. 3. 22. 15:57
- 위치 : frameworks/base/services/jni
- 파일 : com_android_server_BatteryService.cpp
- 에러메세지 :
E/BatteryService( 1866): Could not open '/junk_battery/class/power_supply/battery/status'
W/BatteryService( 1866): Unknown battery health[2] '100'
- 패치 내용 :
static void android_server_BatteryService_update(JNIEnv* env, jobject obj)
{
#if 0
setBooleanField(env, obj, AC_ONLINE_PATH, gFieldIds.mAcOnline);
setBooleanField(env, obj, USB_ONLINE_PATH, gFieldIds.mUsbOnline);
setBooleanField(env, obj, BATTERY_PRESENT_PATH, gFieldIds.mBatteryPresent);
setIntField(env, obj, BATTERY_CAPACITY_PATH, gFieldIds.mBatteryLevel);
setIntField(env, obj, BATTERY_VOLTAGE_PATH, gFieldIds.mBatteryVoltage);
setIntField(env, obj, BATTERY_TEMPERATURE_PATH, gFieldIds.mBatteryTemperature);
const int SIZE = 128;
char buf[SIZE];
if (readFromFile(BATTERY_STATUS_PATH, buf, SIZE) > 0)
env->SetIntField(obj, gFieldIds.mBatteryStatus, getBatteryStatus(buf));
if (readFromFile(BATTERY_HEALTH_PATH, buf, SIZE) > 0)
env->SetIntField(obj, gFieldIds.mBatteryHealth, getBatteryHealth(buf));
if (readFromFile(BATTERY_TECHNOLOGY_PATH, buf, SIZE) > 0)
env->SetObjectField(obj, gFieldIds.mBatteryTechnology, env->NewStringUTF(buf));
#else
env->SetBooleanField(obj, gFieldIds.mAcOnline, true);
env->SetBooleanField(obj, gFieldIds.mUsbOnline, false);
env->SetBooleanField(obj, gFieldIds.mBatteryPresent, false);
env->SetIntField(obj, gFieldIds.mBatteryLevel, 100);
env->SetIntField(obj, gFieldIds.mBatteryVoltage, 15);
env->SetIntField(obj, gFieldIds.mBatteryTemperature, 20);
const int SIZE = 128;
char buf[SIZE];
env->SetIntField(obj, gFieldIds.mBatteryStatus, getBatteryStatus("F"));
env->SetIntField(obj, gFieldIds.mBatteryHealth, getBatteryHealth("G"));
env->SetObjectField(obj, gFieldIds.mBatteryTechnology, env->NewStringUTF("Nemus"));
#endif
}
{
#if 0
setBooleanField(env, obj, AC_ONLINE_PATH, gFieldIds.mAcOnline);
setBooleanField(env, obj, USB_ONLINE_PATH, gFieldIds.mUsbOnline);
setBooleanField(env, obj, BATTERY_PRESENT_PATH, gFieldIds.mBatteryPresent);
setIntField(env, obj, BATTERY_CAPACITY_PATH, gFieldIds.mBatteryLevel);
setIntField(env, obj, BATTERY_VOLTAGE_PATH, gFieldIds.mBatteryVoltage);
setIntField(env, obj, BATTERY_TEMPERATURE_PATH, gFieldIds.mBatteryTemperature);
const int SIZE = 128;
char buf[SIZE];
if (readFromFile(BATTERY_STATUS_PATH, buf, SIZE) > 0)
env->SetIntField(obj, gFieldIds.mBatteryStatus, getBatteryStatus(buf));
if (readFromFile(BATTERY_HEALTH_PATH, buf, SIZE) > 0)
env->SetIntField(obj, gFieldIds.mBatteryHealth, getBatteryHealth(buf));
if (readFromFile(BATTERY_TECHNOLOGY_PATH, buf, SIZE) > 0)
env->SetObjectField(obj, gFieldIds.mBatteryTechnology, env->NewStringUTF(buf));
#else
env->SetBooleanField(obj, gFieldIds.mAcOnline, true);
env->SetBooleanField(obj, gFieldIds.mUsbOnline, false);
env->SetBooleanField(obj, gFieldIds.mBatteryPresent, false);
env->SetIntField(obj, gFieldIds.mBatteryLevel, 100);
env->SetIntField(obj, gFieldIds.mBatteryVoltage, 15);
env->SetIntField(obj, gFieldIds.mBatteryTemperature, 20);
const int SIZE = 128;
char buf[SIZE];
env->SetIntField(obj, gFieldIds.mBatteryStatus, getBatteryStatus("F"));
env->SetIntField(obj, gFieldIds.mBatteryHealth, getBatteryHealth("G"));
env->SetObjectField(obj, gFieldIds.mBatteryTechnology, env->NewStringUTF("Nemus"));
#endif
}
'임베디드 > Android' 카테고리의 다른 글
[android] 화면에 fps 수치 표시하기 (0) | 2011.03.25 |
---|---|
[android][error] /dev/pmem, libhgl.so 에러 (0) | 2011.03.22 |
[android][error] power.c 패치 (0) | 2011.03.22 |
[android][error] can't find any keycharmaps & can't open keycharmaps file (0) | 2011.03.22 |
[android] HOME key 살리기 (0) | 2011.03.21 |