Download presentation
Presentation is loading. Please wait.
1
iOS LifeRhythm Data Collection
By Reynaldo Morillo
2
The App operates in the background collecting:
Location Activity Wifi Connectivity
3
Wifi Connectivity How:
Collects the user’s connectivity to Wifi (i.e. is the user connected or disconnected to Wifi). How: Connectivity is logged on an event basis. The event by which a log occurs is a location update. So at the time a location update is received, we will also log Wifi connectivity.
4
Wifi Connectivity Features sensorType: Always “Wifi”
userid: User’s unique 6 digit ID senseStartTimeMillis: The time at which the check for Wifi connectivity occured, in milliseconds. State: Connected / Not Connected deviceid: App ID* senseStartTime: Same as senseStartTimeMillis, except this is in a date and time format. BSSID: Access Point MAC Address SSID: Name of Network IOS doesn’t permit one to obtain the device’s Unique User Identifier (UUID) since iOS 7. This was done to protect the privacy of users from advertising companies. Now, an alterante ID is used, which works on a per App basis.
5
Collects the user’s activity in 1 of 2 ways
Apple Motion Co- Processor Activity Estimation via Speed Activity Collects the user’s activity in 1 of 2 ways
6
Activity Apple Motion Co-Processor
These co-processors were developed to provide an energy efficient solution to tracking a user’s activity. These dedicated low energy chips always track a user’s activity and characterizes them as: stationary, walking, running, cycling*, automotive, and unknown. These processors store this information in dedicated storage, so that it’s readily queryable. These processors are available on iPhones 5s and above. Cycling only available for iPhone’s >= 6
7
Speed (meters per second)
Activity Activity Estimation via Speed Using a user’s instantaneous speed (i.e. speed at location acquisition) we can infer a user’s activity. Activity Speed (meters per second) Stationary 0 < x < 0.95 Walking 0.95 < x < 2.3 Running 2.3 < x < 11.18 Automotive > 11.18 Unknown -1 Cycling only available for iPhone’s >= 6
8
Activity How: Based on the device we use either of the acquisition methods. If iPhone 5s or above, use Apple Motion Co-Processors Else use Activity Estimation via Speed When: On a location event basis (i.e. on a location update) the following occurs: If Motion Processor available, query from last time a location update occurred (query returns all activity that occurred over range of time). Else use the current speed to infer an activity Cycling only available for iPhone’s >= 6
9
Activity Features senseStartTime: The date and time at which the activity was logged activity: stationary / walking / running / cycling* / automotive / unknown confidence: low / med / high userid: User’s unique 6 digit ID deviceid: App ID* senseStartTimeMillis: Time at which activity was logged, in milliseconds sensorType: Always “Activity” Cycling on iPhones >= 6 app ID
10
Event Based and Event Driven collection
Event Based: Location updates occur after a user traverses a certain distance away from last location update. Event Driven: the settings for Location updates change dynamically according to the user’s estimated activity. Location Event Based and Event Driven collection
11
Location Settings On iOS the location service is managed by the Operating System. So an App must subscribe to the service, and have location updates published to the App according to two variables (set by the App): Desired Accuracy: defines the accuracy of the location updates (i.e. how close to the real value a measurement may be) Distance Filter: The distance that must be traversed before a new location update is delivered to the App.
12
Location Problem with Static Variable Settings
To have a good picture of what a user’s location is throughout the day, a single configuration of these variables isn’t sufficient, because it may lead to either: Poor Resolution (i.e. sparse location updates that maybe far between), but great battery efficiency High Resolution, but poor battery efficiency Resolution and Battery Efficiency are objectives that are at odds with each other. So a single setting would have to make an even compromise. Empirically this middle ground isn’t adequate for either objective.
13
Location Stationary Moving Modes Car City Car Highway Verification
To get the best of both objectives, the app dynamically adjusts the settings according the user’s estimated activity. The dynamic adjustments are categorized into 5 options, we denote as Modes. Each Mode has an associated desired accuracy and distance filter. Verification Car City Car Highway
14
Stationary Moving This mode is entered when a user’s activity is deemed to be Stationary, as determined by Activity collector Desired Accuracy: 10 meters Distance Filter: 50 meters When a user’s activity is deemed to be Moving, which may be either Walking or Running Desired Accuracy: 10 meters Distance Filter: 100 meters
15
Verification Car City After verification a user may be deemed to be driving in a city if their instantaneous speed is < x < 22.4 meters per second Desired Accuracy: 10 meters Distance Filter: 805 meters When a user is suspected to be driving. This mode is on for a period of 5 seconds before deciding if a user is indeed driving. Desired Accuracy: < 10 meters Distance Filter: 0 meters
16
Car Highway After verification a user may be deemed to be driving on the Highway, if their instantaneous speed is > 22.4 meters per second Desired Accuracy: 10 meters Distance Filter: 1610 meters
17
Location Features userid : User’s unique 6 digit ID
speed: Instantaneous speed (meters per second) senseStartTimeMillis: Time at which log occurred in milliseconds configAccuracy: The desired accuracy Provider: GPS / Network local_time: Date and Time at which log occurred longitude: Vertical position measured in degrees (0 to +/- 90) latitude: Horizontal position measured in degrees (0 to +/- 90) sensorType: Always “Location” deviceid: App ID accuracy: The error associated with the measurement (in meters)
18
Uploads Data is uploaded using Wifi whenever the operating system deems best. Empirically, this occurs enough times per day to be effective
19
If you have any question please contact us
LifeRhythm If you have any question please contact us
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.