当“/sys/class/power_supply/Battery”不可读时,Android NDK中的电池状态



我有一个NDK应用程序,可以从/sys/class/power_supply/battery读取电池状态信息。这在大多数设备上运行良好。在某些设备上,该目录不可读。例如,在NVIDIA Shield上:

$ adb shell
shell@shieldtablet:/ $ ls /sys/class/power_supply/battery/
/sys/class/power_supply/battery/: Permission denied

是否有其他方法可以在这些设备的NDK中获取电池信息?

用于获取电池信息的Java API照常工作,但这是针对NDK应用程序的,所以我希望使用仅C++的方法。

我通过在Java中创建一个全局对象来解决这个问题,其中BroadcastReceiver监听ACTION_BATTERY_CHANGED广播。它缓存这些值,我使用JNI从C++中查询它们。我很想知道一个更清洁的解决方案。

最新更新