我有一个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 ++查询它们。我很想知道一个更清洁的解决方案。

关于android - 无法读取`/sys/class/power_supply/battery'时,Android NDK中的电池状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28616185/

10-12 16:04