This utility class allows your phone to talk back to you any information you need. You can use this utility class to interact with the user by combining it with the Voice-2-Text utility class (coming soon). Say hi! Intent speak = new
AWARE allows you to offload collected data to a remote server using JSON. We have included two utility classes: Http and Https. They allow insecure and secure data offloading, respectively. We demonstrate how to send data from the accelerometer to a page
We have made our server component (AWARE Dashboard) open-source over GitHub. This allows you to host your own server and full control over the AWARE Dashboard. Feel free to break it, fix it, enhance it and share it back. “With great power
Android You can now schedule tasks to be performed in a periodic fashion: interval: triggered every X minutes hourly: triggered at designated hours daily: triggered at designated weekdays monthly: triggered at designated months of the year contextual: triggered by a broadcast
Managing a study on the dashboard In this tutorial, we demonstrate how to use AWARE to run a user study. You will need to first authenticate on AWARE’s dashboard here: https://api.awareframework.com. We support Google’s OAUTH account login due to the tight
Even though we encrypt the connection between the client and the dashboard and MySQL servers, some researchers have the requirement to encrypt the data itself on their server. The data on the database itself CAN BE encrypted on your server as
In this tutorial, we’ll use AWARE as a built-in library and not require AWARE to be installed beforehand. This is ideal to create applications that leverage AWARE’s sensors’ and plugins’ APIs to reduce development time. This tutorial is split in four sections:
Android The timezone sensor keeps track of the user’s current timezone. Settings Aware_Preferences.STATUS_TIMEZONE: true or false to activate or deactivate sensor. Aware_Preferences.FREQUENCY_TIMEZONE: how frequently we check the device’s timezone, in seconds – default is 3600 seconds (i.e., 1h). TimeZone.ACTION_AWARE_TIMEZONE: new data recorded in
Saving our context data into a ContentProvider Implementing a ContentProvider requires some care, as it is very easy to make a mistake. To start, we will create a new class called Provider.java in your project (e.g., com.aware.plugin.template). First thing you will
This sensor records the users’ keystrokes regardless of which keyboard is used. Also records in which application the keyboard is being used. It does not record passwords. Settings Aware_Preferences.STATUS_KEYBOARD: true or false to activate or deactivate sensor. Keyboard.ACTION_AWARE_KEYBOARD: new data recorded
Capturing context is challenging. In fact, context is produced anytime, anywhere, by everything and anyone: it is extremely volatile and subjective. Instead of trying to define what context is, here is how AWARE captures it: On your daily life, your phone uses
Logs the mobile device’s Wi-Fi sensor, current AP and surrounding Wi-Fi visible devices with respective RSSI dB values at specified intervals.
The temperature sensor measures the ambient air temperature, in Celsius (˚C). Not many devices have this sensor available.
The telephony sensor provides information on the mobile phone capabilities of the device, connected cell towers and neighboring towers. Settings Aware_Preferences.STATUS_TELEPHONY: true or false to activate or deactivate sensor. Telephony.ACTION_AWARE_TELEPHONY: broadcasted when the telephony profile is updated. Telephony.ACTION_AWARE_CDMA_TOWER: broadcasted when
Android The screen sensor monitors the screen statuses, such as turning on and off, locked and unlocked. Settings Aware_Preferences.STATUS_SCREEN: true or false to activate or deactivate sensor. Screen.ACTION_AWARE_SCREEN_ON: broadcasted when the screen is on. Screen.ACTION_AWARE_SCREEN_OFF: broadcasted when the screen is
Android The rotation sensor measures the orientation of the device as a combination of an angle and an axis, in which the device has rotated through an angle θ around an axis (x, y, or z). The rotational vector sensor is particularly
The proximity sensor measures the distance to an object in front of the mobile device. Depending on the hardware, it can be in centimeters or binary. Public functions Proximity.getFrequency( Context context ): returns the sampling rate in Hz. Settings Aware_Preferences.STATUS_PROXIMITY:
Android The processor sensor measures the mobile phone’s processor load. It provides the average processors load (for multi-core devices) dedicated to the user processes, system processes and idle (i.e., no load). It also broadcasts when the processor is under stress
Android The barometer sensor measures the ambient air pressure. Barometer can be leveraged to detect and predict short team changes in weather, for example drops in pressure indicate rain, while raises indicate good weather ahead. Public functions Barometer.getFrequency( Context context
Android The network sensor provides information on the network sensors availability of the device. These include use of airplane mode, Wi-Fi, Bluetooth, GPS, mobile and WIMAX status and internet availability. This sensor can be leveraged to detect the availability of
MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks. The design principles are to minimise network bandwidth and device resource requirements whilst also
The magnetometer measures the geomagnetic field strength around the device. It lets you monitor changes in the Earth’s magnetic field. This sensor provides raw field strength data (in μT) for each of the axis. The coordinate-system is defined relative to the
Android The locations sensor provides the best location estimate for the users’ current location, automatically. We have built-in an algorithm that provides the user’s location with a minimum battery impact. However, we offer the flexibility to researchers to change how frequently the
The linear accelerometer measures the acceleration applied to the sensor built-in into the device, excluding the force of gravity, in m/s². For example, you could use this sensor to see how fast your car is going. The linear acceleration sensor always
The light sensor measures the ambient light. It can be used to detect indoor or outdoor light conditions. The official SensorManager Light constants are: Cloudy sky: 100.0 Full moon: 0.25 No moon: 0.001 Overcast: 10000.0 Shade: 20000.0 Sunlight: 110000.0 Sunlight
The Installations sensor logs devices’ application installations, removal and updates. It can be leveraged to activate/deactivate sensors that depend on the presence of specific applications on the device. Settings Aware_Preferences.STATUS_INSTALLATIONS: true or false to activate or deactivate sensor. Installations.ACTION_AWARE_APPLICATION_ADDED: broadcasted
The gyroscope sensor measures the rate or rotation in rad/s around a device’s x, y and z axis. Rotation is positive in the counter-clockwise direction; that is, an observer looking from some positive location on the x, y or z axis
The gravity sensor measures the force of gravity applied to the sensor built-in into the device and provides a three dimensional vector indicating the direction and magnitude of gravity (in m/s²). When a device is at rest, the gravity sensor
The ESM sensor adds support for user-provided context by leveraging mobile Experience Sampling Method (ESM). The ESM questionnaires can be triggered by context, time or on-demand, locally or remotely (within your study on AWARE’s dashboard). Although user-subjective, this sensor allows
Tracks users’ calls and messages. No personal information is collected.
Performs Bluetooth scans and acquires information about surrounding BT devices (e.g., name, address, RSSI).
Keeps track of the mobile device’s battery life and status.
Logs manufacturer’s information, manages AWARE’s plugins statuses and dependencies, schedules data sync, and checks for updates.
Logs application usage (e.g., visible, on the background), application crashes and notifications.
Measures the acceleration applied to the sensor built-in into the device, including the force of gravity.