GPII Android FAQ

From wiki.gpii
Revision as of 17:21, 30 June 2014 by Till (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


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?

The same core GPII code is used across all our platforms in order to deliver a stable and cohesive development experience. Meaning that the declarative JSON style configuration you've come to know and love on any other GPII platform will work the same on Android. This is, necessarily, written in Javascript running on a V8 environment, in our case Node.js.

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.

Back to Android Overview