当`/ sys / class / power_supply / battery`不可读时,Android NDK中的电池状态

时间:2015-02-19 20:23:08

标签: android c++ 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 ++的方法。

1 个答案:

答案 0 :(得分:2)

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