GPII Android FAQ
- 1 FAQ
- 1.1 What is the required API level?
- 1.2 Do phones need to be rooted to run GPII?
- 1.3 What version of Node.js is running on the phone?
- 1.4 Why are you running Node.js on Android devices?
- 1.5 Can I still code my Accessiblity components in Java?
- 1.6 I can't build it, do you have a binary available?
- 1.7 What phones are supported?
- 1.8 What versions of Android are supported? Can we run on pre ICS versions?
- 1.9 Can we use GPS/Accelerometers and other cool parts of the hardware?
- 1.10 What sorts of Settings Handlers and User Listeners are available?
What is the required API level?
I believe it currently to be android-10 based on the anode documentation, but it could be otherwise.
Do phones need to be rooted to run GPII?
We are still in the process of testing this, but for base GPII functionality it's hopefull the answer is no, you do not need a rooted phone. However, depending on applications and functionality we are trying to configure, either the GPII, or the module it's invoking may need root access.
What version of Node.js is running on the phone?
Currently we are working off a version of Node.js with some specific Android customizations that have been done by Paddy Byers. These are on Node v0.6. The core GPII libraries are pretty clean and currently run on v0.6. ( We require v0.8 for some other platforms such as Windows, because of Windows specific features that were added post v0.8. )
There is an inprogress version of Node.js on v0.8 for Android.
Why are you running Node.js on Android devices?
While most Android code is written in Java, there is strong support for C/C++ code, and given that Node.js is very lightweight and *always* operates in a single process, it actually makes a lot of sense on Android. ( Which is a multi-user Linux distribution, with each app typically operating as a different user, with each component running as a seperate process. )
Can I still code my Accessiblity components in Java?
Yes. Android Activities, Services, Content Providers, and Broadcast Listeners for new and existing Android applications are developed the same as usual. As with other platforms ( Linux, Windows, etc ), the GPII continues to act as a facilitator and orchestrator behind the scenes on the system, and merely starts/stops and sets configurations on the platforms applications.
That said, if you use Android best practices for storing your settings, using Intents to allow communication with your app, etc. then integrating it with the GPII via the usual JSON formats will be easier.
I can't build it, do you have a binary available?
We're working on this, sorry it's not ready yet. The patches and build toolchain, as well as publishing some binaries should happen in February of this year still.
What phones are supported?
At the moment, it's only been tested on a Galaxy Nexus running 4.1.2. Nothing is terribly Ice Cream specific though, so I hope it should run on lots of models with few changes once we start testing.
What versions of Android are supported? Can we run on pre ICS versions?
As in the previous answer, currently testing on 4.1.2, but hopefully it should run on more than that.
Can we use GPS/Accelerometers and other cool parts of the hardware?
Yes. If you can code various hardware features in an add along Java or C++ module, then you can use it.
What sorts of Settings Handlers and User Listeners are available?
These are in progress, but we anticipate Settlings Handers for standard android preferences storage and intent signalling. For user listeners, there will likely be at least an NFC tag reader in the works, but I imagine voice activies and facial recognition ones would be interesting too.