Menu

Events

Gabor Novak

Events

We are referring to the collected data as an Events which are invoked by the device.

Events

There is a main BaseEvent class, which contains a timeStamp and an id field. The timeStamp is the time when the event occurred, the id is a unique id for the database. Every other event class inherited from this BaseEvent class.

There are short events, and long events within the MSF.

  • The short event, such a browser history, battery level event happens immediately. You can get the time information with the Date getDate() or the long getTime() method.
  • The long events also inherited from the BaseEvent class, but the long events are also implement the ILongEvent interface. The long event always has a start and an end time, that is the reason why is it long event. You can get the start time with the Date getStartDate(); method, and you can get the end date with the same way: Date getEndDate();

The available events are the following:

Application log

The name of running application and their run duration.
Long event.

Class: ** ApplicationLogEvent **

Fields (for [MSF Queries]):

String applicationName; //E.g.: com.facebook.messenger
int duration; //In millisecond

Battery level

The current battery charge level.
Short event.

Class: ** BatteryLevelEvent **

Fields:

int batteryLevel; // The percentage value

Browser history

Visited Websites (identified by a unique hash for privacy).
Short event.

Class: ** BrowserHistoryEvent **

Fields:

String url;
String title;

Heart rate

Heart rate data from a connected Zephyr HxM HRM device.
Long event.

Class: ** HeartRateEvent**

Fields:

int minHeartRate;
int maxHeartRate;
int avgHeartRate;
long endTime;

Calls

Incoming, outgoing, and missed calls (identified by a unique hash for privacy) with call duration.
Incoming, outgoing are long event, missed is short.

Classes: ** IncomingCallEvent, ** OutgoingCallEvent, ** MissedCallEvent**

Fields:

String contactNumberHash; // MD5 hash of the phone number
int duration; // not available in the MissedCallEvent class

Location

The device’s geo-location.
Short event.

Class: ** LocationEvent**

Fields:

double latitude;
double longitude;
double altitude;
float speed;
float bearing;
float accuracy;

Light Level

Lux values from the device’s photodetector sensor.
Short event.

Class: ** PhotodetectorEvent**

Fields:

float luxValue;

SMS Data

SMS data (identified by a unique hash for privacy) that includes the number of words.
Short event.

Classes: ** ReceivedSmsEvent, ** SentSmsEvent

Fields:

String contactNumberHash; // MD5 hash of the phone number
int messageLength; // Number of bytes
int numberOfWord; // Words separated by: " ,.;:"

Sound pressure level

The calculated decibel value of the user’s ambient environment.
Short event.

Class: ** SoundPressureEvent **

Fields:

double dbValue;

Pedometer

Calculated step information from the gyroscope and accelerometer.
Short event.

Class: ** StepEvent**

Fields:

double rmsForceValue;

Wireless devices

Nearby Bluetooth devices and WiFi hotspots.
Short event.

Class: ** WirelessDeviceEvent**

Fields:

int numberOfBluetoothPhoneDevice;
int numberOfBluetoothComputerDevice;
int numberOfBluetoothOtherDevice;
int numberOfWifiHotSpot;

Weather information

Local weather information. (Based on the http://api.openweathermap.org information)
Short event.

Class: ** WeatherEvent **

Fields:

long sunriseTime;
long sunsetTime;
String weatherMain;
String weatherDescription;
float temp;
float tempMin;
float tempMax;
float pressure;
float humidity;
float windSpeed;
float windDegree;

Real life event

Labeled data (e.g., the user drinks a cup of coffee).
Long event.

Class: ** RealLifeEvent**

Fields:

String activity;
String category;
String place;
String people;
String description;

Related

Wiki: MSF Queries