设为首页 加入收藏

TOP

在Android中加入充电指示(二)
2014-11-24 07:48:44 来源: 作者: 【 】 浏览:7
Tags:Android 加入 充电 指示
ery003" },


{ &gBackgroundIcon[BACKGROUND_ICON_CHARGE3], "battery004" },


{ &gBackgroundIcon[BACKGROUND_ICON_CHARGE4], "battery005" },


{ &gBackgroundIcon[BACKGROUND_ICON_CHARGE5], "battery006" },


{ NULL, NULL },


};



static int readFromFile(const char* path, char* buf, size_t size)


{


int fd = open(path, O_RDONLY, 0);


if (fd == -1) {


//LOGE("Could not open '%s'", path);


return -1;


}



size_t count = read(fd, buf, size);


if (count > 0) {


count = (count < size) count : size - 1;


while (count > 0 && buf[count-1] == '\n') count--;


buf[count] = '\0';


} else {


buf[0] = '\0';


}



close(fd);


return count;


}



static int getBatteryStatus(const char* status)


{


switch (status[0]) {


case 'C': return STATUSCHARGING; // Charging


case 'D': return STATUSDISCHARGING; // Discharging


case 'F': return STATUSFULL; // Not charging


case 'N': return STATUSNOTCHARGING; // Full


case 'U': return STATUSUNKNOWN; // Unknown



default: {


printf("Unknown battery status '%s'", status);


return STATUSUNKNOWN;


}


}


}



static int getBatteryHealth(const char* status)


{


switch (status[0]) {


case 'D': return HEALTHDEAD; // Dead


case 'G': return HEALTHGOOD; // Good


case 'O': {


if (strcmp(status, "Overheat") == 0) {


return HEALTHOVERHEAT;


} else if (strcmp(status, "Over voltage") == 0) {


return HEALTHOVERVOLTAGE;


}


printf("Unknown battery health[1] '%s'", status);


return HEALTHUNKNOWN;


}



case 'U': {


if (strcmp(status, "Unspecified failure") == 0) {


return HEALTHUNSPECIFIEDFAILURE;


} else if (strcmp(status, "Unknown") == 0) {


return HEALTHUNKNOWN;


}


// fall through


}



default: {


printf("Unknown battery health[2] '%s'", status);


return HEALTHUNKNOWN;


}


}


}



static void ui_set_background(int icon)


{


gr_surface gIcon;


gIcon=gBackgroundIcon[icon];


gr_color(0, 0, 0, 255);


gr_fill(0, 0, gr_fb_width(), gr_fb_height());


if (gIcon) {


//printf("set backgroupd:%s\n\r",gBackgroundIcon[icon].name);


int iconWidth = gr_get_width(gIcon);


int iconHeight = gr_get_height(gIcon);


int iconX = (gr_fb_width() - iconWidth) / 2;


int iconY = (gr_fb_height() - iconHeight) / 2;


gr_blit(gIcon, 0, 0, iconWidth, iconHeight, iconX, iconY);


}


gr_flip();


}



static void ui_init()


{


gr_init();


ev_init();


int i;


for (i = 0; BITMAPS[i].name != NULL; ++i) {


int result = res_create_surface(BITMAPS[i].name, BITMAPS[i].surface);


if (result < 0) {


printf("Missing bitmap %s\n(Code %d)\n", BITMAPS[i].name, result);


*BITMAPS[i].surface = NULL;


}


//else printf("create:%s\n\r",BITMAPS[i].name);


}



}


const int SIZE = 128;



int power_ac()


{


char buf[SIZE];


if (readFromFile(AC_ONLINE_PATH, buf, SIZE) > 0) {


if (buf[0] == '1') {


return 1;


}


}


return 0;


}



/*


function to indicate if the battery is present.


*/


int battery_present()


{


char buf[SIZE];


if (readFromF

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇利用BLCR加快Android的启动过程 下一篇Android上拔出sd卡导致flash上媒..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ Lambda表达式保 (2025-12-26 05:49:45)
·C++ Lambda表达式的 (2025-12-26 05:49:42)
·深入浅出 C++ Lambda (2025-12-26 05:49:40)
·C语言指针从入门到基 (2025-12-26 05:21:36)
·【C语言指针初阶】C (2025-12-26 05:21:33)