It turns out that reading the battery level is quite straight forward Android SDK work and not so straight forward Delphi work. On the Te Waka o Pascal blog, the author describes just how straight forward and not so straightforward it can be, and even provides the code and investigation techniques he used to do it. A few things the author mentions are that…
- Embarcadero seems to have gone out of their way to make it hard to find some of the various bits of the JNI that they have provided.
- That there are some pieces missing from the supposedly comprehensive JNI wrappers.
- Delphi provides none of the syntactic sugar that makes working with the Java SDK more Pascal-like.
- The JNI wrappers use a combination of classes and interfaces. Since interfaces do not have constructors, this makes constructing instances of a class an operation which cannot simply be taken directly from any Java code you might find.