Skip to content

[Researchers] Supported Data Streams

Eli Jones edited this page Jun 24, 2024 · 3 revisions

Accelerometer

  • Android and iOS both include the accelerometer data stream.
  • Accelerometer sensors are present on literally all smartphones.
  • The accelerometer data stream has configurable on and off recording session durations, and a data rate frequency setting.
  • A note specifically about Android accelerometer behavior with this data stream:

Values entered for the sample rates of the accelerometer are not very reliable. You can and should expect similar behavior with other sensor types. Your experience will vary.

Due to the sheer extent and variation of Android devices - hardware sensors, device manufacturer customization, battery life and power-saving details - our best advice is that you need to go out and test a few Android devices before deciding on values for your study. That said, you should be able to get sufficient quality data from any modern device.

Here is an example from our Android developer his experience when running tests on a Pixel 6 with Android 13:

Only a handful of "real frequencies" exist: 1-2ms, 2-3ms, 4-5ms, 8-9ms, 18-19ms, 36-37ms, ~72ms, ~144ms, and ~288ms. The faster time brackets tend to be more reliable, but the mapping of any specific input value to expected output behavior is quite annoying. 9ms results in the 4-5ms frequency, 10ms results in the 8-9ms frequency, and any value above 18ms would mostly run at 18-19ms with occasional jumps to a slower bracket. Sometimes that jump was random, sometimes it coincided with device usage. 288ms seemed to be a power saving mode.

Gyroscope

  • Android and iOS both include the gyroscope data stream.
  • Gyroscope sensors are almost always present on smartphones.
  • The gyroscope data stream has configurable on and off recording session durations, and a data rate frequency setting.
  • Android also exhibits similar behavior to the note above on accelerometer behavior, we recommend manual testing on a handful of devices before launching your study.

GPS

  • Android and iOS both include the GPS data stream.
  • The GPS data stream has configurable on and off recording session durations.
  • GPS has an extra "fuzzing" parameter that serves to obscure the exact location of the user.

Magnetometer (a.k.a. Compass)

Wifi

  • Wifi is an Android-only data stream.
  • A local wifi report will be taken based on a configurable periodic timer.
  • iOS cannot support the same functionality due to Apple's restrictions on the use of wifi data, but we may be able to get some limited data. If you are interested in this data stream for iOS, please create an issue on the Beiwe iOS app repository

Bluetooth

  • Bluetooth is an Android-only data stream.
  • A local bluetooth report will be taken based on a configurable timer that is normalized to an offset from the top of the hour.
  • If you are interested in other uses of Bluetooth data, please create an issue on the Beiwe Android app repository. This data stream has complex limitations and should be investigated carefully before beginning a study.
  • Bluetooth cannot be made to match the android behavior on iOS, if you are interested in other uses please create an issue on the Beiwe iOS app repository

Calls and Texts Log

  • Calls and Texts Log is an Android-only data stream.
  • Calls and Texts logs anonamized data about incoming and outgoing calls, call durations, and SMS/MMS texts.
  • Calls and Texts logs are not unavailable by design on iOS.

Power State

  • Power State is an Android-only data stream.
  • Power State logs certain power state transitions, including when the device is plugged in, unplugged, or when the screen turns on and off. Exact output will differ by Android version, and possibly by device model or manufacturer.
  • Power State logs are not available by design on iOS.

Proximity

  • Proximity is an iOS-only data stream.
  • Proximity logs the proximity sensor state, which is a binary value indicating whether the device is near or far from the user's face.
  • Proximity is only available while the iOS app is open.
  • Note that when the proximity sensor is covered (for examply by a participant's finger), the screen will turn off.

Reachability

  • Reachability is an iOS-only data stream.
  • Reachability is a periodic check of whether the device is connected to the internet.
  • Reachability is currently partially deprecated due to changes Apple made to iOS. This issue on the Beiwe iOS app repository has more information.

Devicemotion

  • Devicemotion is an iOS-only data stream, it is a composite data stream that includes accelerometer, gyroscope, and magnetometer data.
  • Devicemotion has configurable on and off recording session durations.
Clone this wiki locally