Baseline collection types
The registry selects the following six types. Execution still depends on selected types, available hardware, permissions, and foreground-service state.
| Type | Meaning | Stored content and interpretation |
|---|---|---|
accelerometer | Phone acceleration | Mean X/Y/Z over a burst, sample count, window/burst duration |
device_motion | Rotation, magnetic field, gravity, orientation | Per-sensor counts and summaries, last rotation vector |
screen_state | Device screen and lock state | State snapshot, screen events, battery percentage/status |
gps | Location | Last location's latitude, longitude, accuracy and related fields |
telephony | Network-state updates | Signal-update count and listener registration state |
telephony_call | Call-state changes | Inferred call state, start/end timestamps and duration |
Acceleration is not stored as a continuous raw waveform. signalUpdateCount is not signal strength itself. screen_state is neither research-app dwell time nor another app's usage history.
Timing and missing data
Collectors start with 60,000ms windows, but sampling and batch creation differ by type. Acceleration is summarized from a burst. Call collection skips batch creation when no completed call events exist. Do not expect one row per minute for every type.
Some types write a zero-count status batch even when no measurement is available. A row's existence does not establish valid sensor data. Location may be the last known value; inspect its timestamp and accuracy.
Example acceleration payload
These are fictional illustrative values, not participant data.
{
"sensor": "accelerometer",
"windowMs": 60000,
"burstDurationMs": 1000,
"windowDurationMs": 60000,
"sampleCount": 40,
"avg": { "x": 0.12, "y": 9.72, "z": 0.35 }
}
Android acceleration values use m/s². SensorPlugin.pull() returns the batch's sampleCount as Event.valueNum with unit="samples", not the payload above. Inspect the Room batch payload for analysis.
Permissions and storage
Location needs location access and system location services; network and call-state listeners need phone-state access. Records are stored in sensor_sample_batches, including payloadJson, and use the sensor sync path. See permissions and data formats.
Non-default and planned items
Collection code exists for wifi and nearby_device, but neither is in the six-type baseline registry. Research-app usage-time instrumentation is presented as future work in the meeting slides. Type declarations and old README examples do not expand default support.