JTrack Social¶
JTrack Social is available for Android and iOS:
In the Google Play Store
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¶
Open the Google Play Store on your Android device.
Search for JTrack Social and install it.
2. Join the Study¶
Open JTrack Social and tap Join study.
When prompted, allow Camera access so the app can scan your study QR code.
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.
Tap the in-app button to open the App settings screen.
Disable Remove permission and free up space.
Open Battery optimization and set JTrack Social to Unrestricted.
Confirm Unrestricted is selected so Android does not limit the app.
Tip
These settings help prevent Android from stopping the app in the background, which can interrupt data collection.
iOS - Install & Join the Study¶
Open the App Store on your iPhone.
Search for JTrack Social and install it.
Open JTrack Social and tap Join study.
Allow Camera access when prompted so the app can scan your study QR code.
Scan the QR code provided by your study team.
Allow any additional study-related permissions requested by the app.
SensorKit requires a few extra steps to enable.
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.
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.
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:
Open Usage access settings.
Select JTrack Social.
Enable the permission.
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.
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:
Charge the Garmin device and turn it on.
Enable Bluetooth on your phone.
Open the Garmin pairing flow inside JTrack Social and follow the on-screen prompts.
Wait for the first sync to finish before starting normal study participation.
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.
Sensor |
Unit (iOS) |
Unit (Android) |
Resolution (iOS) |
Resolution (Android) |
Notes |
|---|---|---|---|---|---|
Accelerometer |
|
|
Up to 100 Hz |
Up to 100 Hz |
Active Labeling only; high sampling rates increase battery use and data volume. |
Gyroscope |
|
|
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:
Select a predefined task using autocomplete or enter one manually.
Review the task instructions.
Adjust the duration if needed.
Start the task.
Wait through the short countdown before data recording begins.
Perform the task while the selected sensors run in the background.
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 eventwithtaskname,startTimestamp,endTimestamp, anddurationSensor 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, orActiveLabelingTasks
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 IndoorsorTyping.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_activeLabelingEnabledis set to1or2.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.
Navigating the UI¶
Use Active Labeling to mark what you are doing in real time. This helps the study link sensor data with the correct activity.
Overview¶
The home screen shows Recently completed activities and the large Play/Stop control.
Use + to pick or create an activity, or > to load the next scheduled one.
Some tasks display a short instruction and a preparation countdown before starting.
Step-by-Step¶
1) Open the Activity Screen¶
You will see your recent tasks and the main control.
2) Add or Select an Activity¶
Tap the + button to add or select a task. In the New Activity dialog:
Enter activity: type the activity name, for example task 1
Duration in seconds (optional): set a fixed length if your study requires it, otherwise leave it empty
Record Audio: enable this only if your study instructs you to capture audio
Tap Add.
As you type, suggestions may appear. Tap one to select it.
3) Read the Task Instruction¶
Some studies display a brief instruction popup for the selected task. Tap OK to continue.
4) Wait for the Preparation Countdown¶
If your study uses a preparation phase, you will see a countdown. The task starts automatically when the countdown, and any beeps, finish.
5) Start and Stop the Task¶
Press the Play button to start. The timer and progress bar will run.
Press the Stop button to end the task.
When finished, the task appears under Recently completed activities with a timestamp.
Notes and Tips¶
Notifications such as Main service started or Acceleration service started confirm that background sensors are running.
If you enabled Record Audio, Android may show a temporary green microphone indicator while recording.
If you entered a fixed duration, the task ends automatically when the timer completes.
To repeat a task, either use > to load the next task or tap + to choose the activity again.
UI Troubleshooting¶
Cannot find the + button: Scroll slightly if the Play button covers screen elements on small displays.
No suggestions appear: Type the full name or create the activity once so future entries can suggest it.
Audio toggle missing: Your study may not require audio. Follow only the options shown in your app.