java层获取电量需要注册BroadcastReceiver,如果native层通过反射来调用会非常麻烦。
这里提供一个直接读取电量的方法
string readFile(string fileName)
{
string con = "";
FILE *fd = NULL;
char line[256] = { 0 };
fd = fopen(fileName.c_str(), "r");
if (fd == NULL){
return con;
}
fgets(line, 256, fd);
con = line;
fclose(fd);
return con;
}
int getPowerCapacity()
{
DIR *pdir = NULL;
int iCap = -1;
struct dirent *pde = NULL;
string dirName = "/sys/class/power_supply";
pdir = opendir(dirName.c_str());
if (!pdir) {
LOGE("power_supply dir open error");
return -1;
}
while (

本文介绍了一种不依赖BroadcastReceiver,在Native层直接读取Android设备电池电量的方法,避免了通过反射调用的复杂性。
最低0.47元/天 解锁文章
424

被折叠的 条评论
为什么被折叠?



