Track 1& 2: Software
Software Specifications for EvAAL Competitors
Software Specifications for EvAAL Competitors
NEWS 29-09-2109: COMPETITION FILE INI FILE
On-site tracks
Competitors of IPIN 2019 have to code an Android application designed for smartphones (no tablet are allowed) that:
-computes the location of the target user during the measurement session
-reports the estimated position twice per second to the measurement application (aka the StepLogger app).
We provide two Android-based applications:
StepLogger provides two operations:
- a logging service designed to log the position computed by the applications of the competitors (Section 1) as well as the time you press the buttons shown by the app
- a GUI to perform the measurements. We provide two versions of the StepLogger app, v1 designed to run on foreground, v2 designed to run also as overlay app (see Section 2)
StepLoggerClient provides one operation: a fake localization system generating fake positions and invoking the logging system of the StepLogger application
APKs are available for download here.
Source code of the appliations StepLogger v1 and v2 and StepLoggerClient are available:
https://ala.isti.cnr.it/home/svn/software/localization/Android/EvAAL/
svn://ala.isti.cnr.it/software/localization/Android/EvAAL
with username: competitor and password: competitor
1. StepLogger Logging Interface
StepLogger provides a simple service for the applications of the competitors. The service is implemented with one single method named:
void logPosition(in long timestamp, in double x,
in double y, in double z);
which is provided by the StepLogger app; the mothod must be invoked through the AIDL interface. Specifically, competitors must add the StepLogger AIDL file to their Android project and invoke the logPosition method twice per\ second.
Every time the competing app calls logPosition, the StepLogger app logs the following information:
- Time stamp: time in milliseconds from the Unix epoch, as returned from the currentTimeMillis() method provided by the Java System class
- Coordinates x, y, z : x and y are longitude and latitude , respectively, in the WGS84 reference system, while z is the floor, that is an integer number, with a 0 indicating the ground floor.
This information is stored in the file positions.log, as detailed below under “StepLogger Logging mechanism”.
1.1. How to use the StepLogger AIDL interface
- Download the StepLogger AIDL file from the SVN location
- The AIDL file must be placed on the aidl folder under your Android project
- Add the AIDL file in the right Java package, namely it.cnr.isti.steplogger
- Invoke the logPosition method by following these steps:
- Create an Intent object
- Set the class name of the intent object with:
- BOUNDSERVICE_PACKAGE = "it.cnr.isti.steplogger";
- BOUNDSERVICE_CLASS = ".StepLoggerService";
- Invoke the bindService(…) method provided by Android OS in order to bind to the service that matching with BOUNDSERVICE_PACKAGE and BOUNDSERVICE_CLASS
void bindService(in Intent intentService,
in ServiceConnection mConnection, in int flags);
You should download the apk and the source code of the stub StepLoggerClient application, which intended to provide an example of how the competing application should interact with the StepLogger. StepLoggerClient shows a GUI with two buttons: START LOGGING POSITION and STOP LOGGING POSITION.
Note: Since StepLoggerClient invokes a method provided by the StepLogger app, you have to first start a new measurement session (See Section 2.1)