JTrack Social

JTrack Social is available for Android and iOS:

Prerequisites

  • Your study coordinator has provided you with a QR code to join the study.

  • A stable internet connection is required during the initial setup.

For settings that improve background collection and participant compliance, see Compliance Optimization for JTrack Social.

Android - Install & Join the Study

1. Install the App

  1. Open the Google Play Store on your Android device.

  2. Search for JTrack Social and install it.

_images/social_1.png

2. Join the Study

  1. Open JTrack Social and tap Join study.

    _images/social_2.png
  2. When prompted, allow Camera access so the app can scan your study QR code.

    _images/social_3.png
  3. Use your device camera to scan the QR code provided by your study team.

Important

For more about the study QR code, including how it is generated, see the project’s QR code documentation.

3. Complete Required Android Settings

After successful login, the app may prompt you to adjust Android system settings so background data collection can run reliably.

  1. Tap the in-app button to open the App settings screen.

    _images/social_4.png
  2. Disable Remove permission and free up space.

    _images/social_6.png
  3. Open Battery optimization and set JTrack Social to Unrestricted.

    _images/social_5.png
  4. Confirm Unrestricted is selected so Android does not limit the app.

    _images/social_7.png

Tip

These settings help prevent Android from stopping the app in the background, which can interrupt data collection.

iOS - Install & Join the Study

  1. Open the App Store on your iPhone.

  2. Search for JTrack Social and install it.

    _images/Social_iOS_AppStore.png
  3. Open JTrack Social and tap Join study.

    _images/Social_iOS_Notify.png
  4. Allow Camera access when prompted so the app can scan your study QR code.

    _images/Social_iOS_Camera.png
  5. Scan the QR code provided by your study team.

    _images/Social_iOS_Enrolled.png
  6. Allow any additional study-related permissions requested by the app.

Activity
Bluetooth
  1. SensorKit requires a few extra steps to enable.

Step 1
Step 2
Step 3

Note

The exact permission and system-setting screens can differ across iOS versions. Follow the in-app instructions shown on your device.

iOS Implementation Overview

The Android and iOS apps use the same study enrollment, sensor configuration, active-labeling, local-storage, and server-upload concepts. Platform APIs differ, but the participant workflow and resulting JTrack data model are kept as comparable as possible.

On iOS, JTrack Social currently:

  • records only the phone sensors enabled by the downloaded study configuration;

  • uses Core Motion for activity, pedometer, and active-labeling motion data;

  • uses SensorKit for supported historical data such as app usage and lock/unlock information;

  • supports location, Apple Health, audio during configured active-labeling tasks, and Garmin/Fitbit wearables when enabled;

  • stores data locally until it can be uploaded securely; and

  • stops new recording when the study duration ends, while allowing delayed SensorKit batches to be retrieved for up to 48 hours.

As on Android, not every module is available or enabled in every study. iOS permissions and background scheduling are controlled by the operating system and may therefore differ slightly from Android.

Permissions by Sensor

JTrack Social only requests permissions for the modules enabled in your study. The screenshots below show Android examples; iOS permission prompts may look different.

For a cross-platform explanation of camera, location, motion, usage access, SensorKit, microphone, Bluetooth, Apple Health, notification, and background settings, see Application Permissions.

Audio Sensor

  • Allows the app to record microphone input when audio collection is enabled in the study.

  • On some devices, the app may also request storage or media access so recordings can be saved locally before upload.

  1. Allow Microphone access.

    _images/social_8.png
  2. If requested, allow File/Storage access so recordings can be saved.

    _images/social_9.png

Location Sensor

  • Enables location capture based on the study configuration.

  • Location samples are transformed before storage so the participant’s actual location cannot be reconstructed directly from the stored coordinates.

Allow the location permission when prompted.

_images/social_10.png

Application Usage Sensor

  • Collects app usage statistics, such as which apps are used and for how long.

  • On Android, this usually requires enabling Usage access manually.

To enable it on Android:

  1. Open Usage access settings.

  2. Select JTrack Social.

  3. Enable the permission.

_images/social_11.png

Note

This module does not collect message contents, typed text, or other in-app content. It records general usage patterns only.

Activity Recognition Sensor

  • Detects basic physical activity states such as walking, running, or stillness.

  • Depending on the phone, the permission may appear as Activity recognition or another motion-related system prompt.

Allow Activity recognition when prompted.

iOS
Android

What JTrack Social Records

The exact data collected depends on the study configuration. Common JTrack Social modules record the following types of information:

Location

  • Relative, anonymized GPS coordinates and timestamps.

  • These data can be used to estimate mobility patterns such as time spent at places, distance covered, and changes in daily routines.

Application Usage

  • The app name or app category, together with timestamps and foreground usage duration.

  • This is used to measure general usage patterns, not the content inside apps.

Activity Recognition

  • Motion-state labels reported by the phone, such as walking, running, still, cycling, or being in a vehicle, depending on device support.

  • The app records the recognized state and when it changed.

Accelerometer

  • Raw movement values on the x, y, and z axes.

  • On iOS and Android, raw accelerometer recording is restricted to configured Active Labeling tasks; passive accelerometer monitoring is not supported.

  • The apps use the most suitable platform background API available so a running task can continue when the participant briefly opens another app.

Gyroscope

  • Raw rotation-rate values on the x, y, and z axes.

  • Raw gyroscope recording is restricted to configured Active Labeling tasks and is not used for passive monitoring.

Pedometer

  • Step counts over time.

  • This can be used to summarize walking activity or daily movement volume.

Lock and Unlock Events

  • Screen lock and unlock events, and on some devices the time spent in each state.

  • These events help describe phone availability and interaction patterns.

Audio

  • If the study enables audio capture, the app can record microphone input during defined periods or active-labeling tasks.

  • Audio collection is study-specific and should always be described in the study consent materials.

Note

Not every study enables every module. JTrack Social only records the sensors and permissions configured for that study.

Administrator Tools

Both platforms provide protected tools for study staff. The exact layout differs, but the purpose is the same: verify a participant device without changing the study protocol.

The iOS administration area currently includes:

  • Sensor debugging: select a sensor independently of its enabled state and inspect live hardware values or historical data from the last 72 hours.

  • Plotting: display incoming or stored values in an on-device graph and report explicitly when a sensor is unavailable or no historical data exists.

  • Active Labeling preview: inspect task selection, instructions, preparation countdown, timer, audio option, and start/stop behavior without requiring the normal study schedule.

  • Sensor-state reporting: send the effective local enabled/disabled flags to the server. This normally requires Wi-Fi; an administrator can approve a one-time cellular exception.

  • Wearable diagnostics: when Garmin or Fitbit is enabled, inspect pairing, synchronization, local data, upload state, and diagnostic logs through the corresponding dashboard.

Warning

Administration and debugging controls are intended for trained study staff. Running tests or changing device configuration can temporarily affect normal participant workflows.

Garmin Pairing and Sync

If your study uses a Garmin wearable, pairing and syncing are handled directly inside JTrack Social. For participants, the main steps are:

  1. Charge the Garmin device and turn it on.

  2. Enable Bluetooth on your phone.

  3. Open the Garmin pairing flow inside JTrack Social and follow the on-screen prompts.

  4. Wait for the first sync to finish before starting normal study participation.

  5. Keep the watch worn, charged, and within Bluetooth range of the phone.

Tip

If syncing seems delayed, first check that Bluetooth is enabled, the watch battery is not low, and JTrack Social is allowed to run in the background on the phone.

Detailed Garmin Guide

For full Garmin setup, pairing, dashboard configuration, syncing, and troubleshooting steps, see Garmin Integration.

Sensor Data in Comparison between iOS and Android

The overview above explains the sensor modules in plain language. The comparison below is intended for more technical readers who need platform-specific units, resolutions, and implementation details.

Example server records and export concepts are documented under Data Storage.

Platform comparison

Sensor

Unit (iOS)

Unit (Android)

Resolution (iOS)

Resolution (Android)

Notes

Accelerometer

x, y, z in m/s²

x, y, z in m/s²

Up to 100 Hz

Up to 100 Hz

Active Labeling only; high sampling rates increase battery use and data volume.

Gyroscope

x, y, z rotation rate

x, y, z rotation rate

Up to 100 Hz

Up to 100 Hz

Active Labeling only; records rotation and orientation changes.

Activity recognition

Numeric activity code

Numeric activity code

On state changes, with iOS-side filtering

On state changes, as provided by Android

Platform support for individual activity states differs.

Application usage

Foreground duration in seconds

Foreground duration in milliseconds

SensorKit intervals, typically 15 minutes

Dynamic intervals beginning at midnight

iOS may provide categories for third-party apps; Android provides app names and categories.

Lock/unlock

Counts and time in each state

Individual lock or unlock events

SensorKit intervals, typically 15 minutes

Live events

The resulting records differ because the operating systems expose different APIs.

Pedometer

Steps per interval

Steps per interval

Dynamic

Dynamic

Historical availability depends on the operating system and permission state.

Active Labeling

Active Labeling allows study participants to perform predefined tasks while sensor data is recorded in the background. This enables precise labeling of sensor data with task context, which is valuable for data analysis, activity recognition, and model training.

What It Is

Active Labeling is a task-based sensor recording mode where participants are instructed to perform a specific activity or task, such as walking, standing, or brushing teeth. During the task:

  • Sensors such as accelerometer, gyroscope, activity recognition, and audio, if enabled, can record data.

  • The task name and duration are linked to the recorded sensor data.

  • Data is saved and can be uploaded for later analysis after the task ends.

The goal is to associate sensor data with a clearly defined ground-truth label, such as Brushing Teeth. Inside JTrack Social, Active Labeling is accessible from the main view if configured in JDash.

Participant Flow

Participants can:

  1. Select a predefined task using autocomplete or enter one manually.

  2. Review the task instructions.

  3. Adjust the duration if needed.

  4. Start the task.

  5. Wait through the short countdown before data recording begins.

  6. Perform the task while the selected sensors run in the background.

  7. Let the task stop automatically or stop it manually.

The app logs:

  • Task name

  • Timestamp

  • Duration

  • Sensor data during the session

Recorded Data

Each Active Labeling session results in:

  • A labeling event with taskname, startTimestamp, endTimestamp, and duration

  • Sensor data, such as accelerometer and gyroscope samples, tagged with the task name

  • An optional audio file that can be zipped and uploaded

  • A corresponding database entry such as ActiveLabelingSensor, ActiveLabelingSession, or ActiveLabelingTasks

Important

The task name is included as a label in every recorded sensor sample. This supports supervised learning and later analysis.

Data Upload

After the task finishes:

  • Sensor data is saved locally.

  • If the device is online and the server is reachable, the data is uploaded to the study backend.

  • If audio recording is enabled, the audio file is zipped and transmitted as part of the upload.

  • After successful upload, local files are deleted to save space.

Note

Data is only uploaded if JTrack_serverOnline and JTrack_connected are both true.

Best Practices

  • Use short, descriptive task names such as Walking Indoors or Typing.

  • Keep task durations consistent across participants.

  • Include preparation time so participants can get ready before recording starts.

  • Avoid tasks with overlapping or ambiguous names.

  • Ensure all required sensor permissions are granted on participant devices.

General Troubleshooting

If tasks do not start:

  • Check whether JTrack_activeLabelingEnabled is set to 1 or 2.

  • Ensure the task-list JSON is well-formed and downloaded successfully.

  • Verify that sensor permissions such as motion or microphone access are granted.

  • On iOS, ensure required background behavior is allowed by the device settings.

For device-wide checks and the information to include in a support request, see Troubleshooting.