Context States Datasheet

This page contains a list of available Context States that can be sensed using the SDK. Each Context State provides particular context information, can be optionally configured with sensing settings and some of them may require Android permissions to be defined in your application's AndroidManifest.xml file.

Sections


Device-based Context States



  Activity Recognition
 

Sense the physical activity of the person carrying the device, such as if the user is sedentary, walking, running, etc. Activities cannot be inferred with 100% of exactitude, so a probability (in percentage) is associated with each activity.

Item Identifier

  • ContextType.ACTIVITY_RECOGNITION

State Information

  • Physical activity name: "SEDENTARY", "WALKING", "RUNNING", "BIKING", "INCAR", "INTRAIN", "RANDOM", "NONE".
  • Recognized activity probability (e.g. 80%).

Sensing Settings

For enabling the sensing of Activity Recognition context Type, we can specify a settings bundle that will configure the behavior of the sensing. There are three types of settings available - Filter, Mode and Report Type. Each of these is described in more detail below.

Developers can use ActivityOptionBuilder for creating the settings bundle. The following enums provide the available values for each setting: Mode, ReportType and ActivityName. The ContextType enum shows the available context types that can be sensed.

  • Filter: Indicates what type of activities will be reported to the application. By default, all activities will be sensed.
    • "WALKING": user is walking; speed should be higher than 80 steps / min.
    • "BIKING": user is riding a bicycle, bicycle should be moving.
    • "RUNNING": user is running, speed should be higher than 130 steps / min.
    • "INCAR": user is driving a car or sitting in a car, car should be moving.
    • "INTRAIN": Not implemented.
    • "RANDOM": user is doing some activity, but not be recognized.
    • “SEDENTARY”: user is not doing any activity, device is stationary.
    • "NONE": If the activity inferred is not in the filter list, then “NONE” is reported.
  • Mode: Indicates the amount of samples collected before being reported to application developers. The following modes will be supported:
    • “FAST”: Reports every activity inferred
    • “NORMAL”: Reports every group of 8 activities inferred i.e. the application will get one data item for 8 activity results.
    • “POWER_SAVING”: Reports every group of 32 activities inferred i.e. the application will get one data item for 32 activity results.
  • Report Type: Indicates how the activities will be reported to the application developer.
    • "RAW": Reports raw data directly from the sensor.
    • "FREQUENCY": Reports data along with its probability.
  • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
    • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
    • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

If the settings bundle is null, or some data is not configured, the below default values are used:

  • Mode: FAST
  • ReportType: RAW
  • Filter: All activities

Android permissions

  • No special permissions required.


  Audio classification
 

Provides a semantic description for the surrounding audio (for example, if there is music being played or if there are people talking). The audio classification item is created the first time the provider is activated. Then, new audio classification items are created every n seconds. The default is 3600 seconds (one hour). The item contains a weighted list of the kind of audio detected (from the most probable to the less probable). The audio classification cannot be inferred with 100% of exactitude, so a probability (in percentage) is associated with each classification.

Item Identifier

  • ContextType.AUDIO

State Information

  • Audio classification name: "SPEECH", "MUSIC", "MECHANICAL", "MOTION", "CROWD_CHATTER".
  • On Intel platform, in addition to the above it also includes "MALE", "FEMALE", "SILENCE", “UNKNOWN".
  • Recognized activity probability (e.g. 75%).

Sensing Settings

For enabling the sensing of Audio Classification context Type, we can specify a settings bundle that will configure the behavior of the sensing. Developers can use AudioOptionBuilder for creating the settings bundle. There are two settings – Mode and ContinuousFlag.

  • Mode: Indicates the amount of samples collected before being reported to application.
    • “FAST”: Reports every audio result inferred.
    • "EVERY_ONE_MINUTE”: Reports audio results every 1 minute.
    • “ON_CHANGE”: Reports only different audio results.

On non-Intel platform, ON_CHANGE and EVERY_ONE_MINUTE both report audio results every single minute.

  • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
    • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
    • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

If the settings bundle is null, or some data is not configured, the below default values are used:

  • Mode: FAST
  • ContinuousFlag: PAUSE_ON_SLEEP

Android permissions

  • android.permission.RECORD_AUDIO - Required to record audio on the device.
  • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)

Beacons:
 

The Beacons Provider notifies a new state when:

  • Every 'M'+'N' milliseconds, where 'M' is the scan interval and 'N' is the wait interval.
  • If there is at least one beacon signal is discovered.
  • Note that, if the scan and monitor intervals are too narrow, detection accuracy is really low. Thus, it is not suggested to set these values less than 5 seconds each.

Bluetooth receiver will capture the signals over the air and return a list of the discovered beacons, with the closest one being first and further ones after in order according to the distance estimation based on RSSI signal strength.

Item Identifier

  • ContextType.Beacons

State Information

A single beacon information includes:

  • MAC and UUID as physical and logical identifiers of the discovered beacons 
  • RSSI signal strength and distance and zone calculations based on RSSI level. RSSI level is in and integer in dBm and distance is a double in meters. Zones are statically decided by Estimote as follows

Immediate Zone (0-20 cm) (0-8") 

  • When a device is held up close to a beacon
  • Accuracy confidence is high

Near Zone (20 cm - 2 m) (8"- 6.5')

  • Within a couple of meters to the beacon
  • Accuracy is fairly certain

Far Zone (2 - 70 m) (6.5 - 230') 

  • More than a few meters away
  • Accuracy is low or the signal strength is weak

Users will receive a beacon state the first time 'N'+'M' milliseconds later, based on the provider is activated. Then, they will receive a new apps state notification every 'N'+'M' milliseconds (by default 35 seconds) AND only if there is beacon signal discovered.

Provider Strategy

The Beacons Provider listens the radio for 'M' seconds, if listens any beacon signals notifies discovered beacons information in a merged beacons state. Then the thread sleeps for 'N' seconds.

Sensing Settings

KEY

TYPE

DESCRIPTION

DEFAULT VALUE

MONITOR_INTERVAL

INT

How often a new state is notified if there is any change (every 'N' milliseconds).

30000

SCAN_INTERVAL

INT

How long beacons are searched by Bluetooth reciever (for 'M' milliseconds).

5000

Android permissions

Permission Required

Why

android.permission.BLUETOOTH

Required to listen Beacons over Bluetooth radio.

android.permission.BLUETOOTH_ADMIN

Required to discover beacons.

Along with the required permissions a service is declared in the AndoridManifest.xml be declared as the Estimote library requires:

view source print?

<service android: name="com.estimote.sdk.service.BeaconService"
 
		 android:exported="false"/>


  Terminal context
 

Provides a semantic description of the current device orientation and face position. A new item is created each time the device detects a change in the orientation or screen position.

Item Identifier

  • ContextType.TERMINAL_CONTEXT

State Information

  • Device orientation: "LANDSCAPE_UP", "LANDSCAPE_DOWN", "PORTRAIT_UP", "PORTRAIT_DOWN", "ORIENTATION_UNKNOWN".
  • Screen position: "FACE_DOWN", "FACE_UP", "FACE_UNKNOWN".

Sensing Settings

  • N/A.

Android permissions

  • No special permissions required.


  Pedometer
 

Sense the amount of steps that the user did, classified by time of day.

Item Identifier

  • ContextType.PEDOMETER

State Information

  • Total steps since midnight.
  • Amount of steps classified by: midnight/night/morning/noon/afternoon/evening

Sensing Settings

  • Mode: Indicates how often number of steps will be reported.
    • EVERY_N_HUNDREDS: Reports every n hundred collected samples
    • ON_CHANGE: Reports samples only on changes

Note: To avoid false steps detection, the SDK will expect a sequence of at least 10 steps before starting to report any event. While writing a rule related to the number of steps, in the rule's condition add 10 steps to the desired value.

  • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
    • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
    • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

Android permissions

  • No special permissions required.


  •   Location
     

    Provides information of significant locations from the device. Location is tracked every 50 seconds. A new item is created if there is a significant change of location.

    Item Identifier

    • ContextType.LOCATION

    State Information

    • Activity:
      • "IN" (entering a previous inferred fence).
      • "OUT" (leaving a previous inferred fence).
      • "MOVING" (in a location that is not inferred as a fence).
      • "STAYING" (staying at the location - initial location value).
    • Coordinates: "latitude", "longitude".
    • Accuracy (e.g. 50) - in meters.

    Sensing Settings

    • N/A.

    Android permissions

    • android.permission.ACCESS_NETWORK_STATE - In order to check the network status availability.
    • android.permission.ACCESS_FINE_LOCATION - In order to obtain the current location of the device.


      Installed applications
     

    Provides the list of the latest applications installed/uninstalled/updated on the device. A new item is created when the sensing is enabled for the first time. Then, when the user installs, updates, or uninstalls a new application, a new item is notified after 30 seconds. This time prevents large number of states to be notified in a short amount of time. If another application is installed/uninstalled/updated within the first 30 seconds, a timer is reset to 30 seconds until there is no more activity by the user. After 30 seconds elapse, a new state is notified with the latest applications installed/uninstalled/updated on the device (ordered by date in descending order).

    Item Identifier

    • ContextType.INSTALLED_APPS

    State Information

    • Application name.
    • Package name.
    • Application version.
    • Installation date.
    • Update date.
    • Android permissions for this application.
    • Application status: "INSTALLED", "UPDATED", "UNINSTALLED".

    Sensing Settings

    • "MAX_APP_QUANTITY" (INT) - Maximum number of applications that will be collected (sorted by installation date DESC) - Default: 30.
    • "HARVESTING_MODE" (STRING) - Determines the type of apps to gather. "FULL": Full applications list, including system applications. "DOWNLOADED_APPS": Third party applications list not including system applications.     Default: "DOWNLOADED_APPS".

    Android permissions

    • No special permissions required.


      Running applications
     

    Provides information about the applications that are running on the device. A new item is notified when the current/focused application changes. A new Running applications item will be notified as follows: Every n milliseconds (the default is 10,000 milliseconds), if the latest opened application stack has changed (when a different application is opened), identifying the running applications list to retrieve the current application that is active and the last opened application (the last opened application may be running or not). You receive a new item the first time the context state sensing is activated. Then, you receive new items every n milliseconds and only if the item has changed its value.

    Note: on Android 5.0 and later, this list will not accurately reflect all running tasks due to Android platform changes.

    Item Identifier

    • ContextType.APPS

    State Information

    • Application name.
    • Package name.
    • Java class name.

    Sensing Settings

    • "MONITOR_INTERVAL"    (INT) - How often the provider checks for changes in the running apps system stack. Default:    10000 (milliseconds).
    • "MAX_TASKS_QUANTITY" (INT) - How many applications/tasks will be retrieved as maximum from the system stack.    Default: 10.

    Android permissions

    • android.permission.GET_TASKS - Required in order to retrieve the system current apps stack.


      Battery
     

    Provides information about the system battery. A new battery item is notified every n milliseconds. You can configure the number of milliseconds by changing the "MONITOR_INTERVAL" parameter in the provider settings. The other parameter you can configure is "OPERATION_MODE". This parameter defines how often the Battery provider notifies a new state, based on the battery events.

    Item Identifier

    • ContextType.BATTERY

    State Information

    • Battery level.
    • Battery temperature.
    • Time running on battery.
    • Battery presence.
    • Remaining battery life in minutes.
    • Battery status.
    • Plug/AC presence.

    Sensing Settings

    • "MONITOR_INTERVAL" (INT) - How often a new state is notified if there is any change (every 'N' milliseconds). Default: 120000.
    • "OPERATION_MODE" (STRING) - (FULL_MODE | MEDIUM_MODE | ECONOMIZER_MODE) - Default: "FULL_MODE".
      • "FULL_MODE": This mode will only consider the MONITOR_INTERVAL time to notify a new state.
      • "MEDIUM_MODE": In addition to the MONITOR_INTERVAL time, this mode will verify the delta of 3 percentage points of battery level, or a variation in the "plugged" field (on / off) to notify a new state.
      • "ECONOMIZER_MODE": The only difference with the MEDIUM_MODE is the variation of 5 percentage points of battery level.

    Android permissions

    • No special permissions required.


      Calendar
     

    Provides calendar events details for the next 24 hours. Calendar events are taken from the device's native calendar. Each time the calendar is changed and the interval applies, a new item will be notified. You can change how often new items are notified by configuring the INTERVAL parameter.

    Item Identifier

    • ContextType.CALENDAR

    State Information

    • Event start date.
    • Event end date.
    • Event duration.
    • Event title.
    • Event description.
    • Event location.
    • Event time zone.

    Sensing Settings

    • "INTERVAL" (LONG) - How often calendar information is notified if there is any change (every "N" milliseconds). Default: AlarmManager.INTERVAL_HALF_HOUR.

    Android permissions

    • android.permission.READ_CALENDAR - Required to read calendar data.


      Call
     

    Provides the information of the last caller when receiving an incoming call, including missed calls. For example, after the device rings three times, a first item is notified. After six rings, a second item is notified, and so on. The provider keeps running until the call is answered or missed. The ring is used to measure how many times the call has been ringing (which is the time elapsed between the incoming call occurrence and when the call is answered or missed). By default, the ring delay is 3,000 milliseconds (which is a standard phone ring measurement). For example, if you have an incoming call ringing for nine seconds, three rings have occurred. By default, the quantity of rings that must occur before a call state is notified is three rings. When an incoming call event occurs, you get a call state notification every n number of rings. The amount of rings can be configured in the sensing settings.

    Item Identifier

    • ContextType.CALL

    State Information

    • Caller phone number.
    • Ringer mode (notification type): "NORMAL", "SILENT", "VIBRATE", "UNKNOWN".
    • Caller contact name.
    • Rings quantity.
    • Missed calls (from the current caller).

    Sensing Settings

    • "RING_DELAY" (INT) - Delay in milliseconds to consider between rings. Default: 3000.
    • "RINGS_PER_NOTIFICATION" (INT) - How often a new state is notified (every 'N' rings). Default: 3.

    Android permissions

    • android.permission.READ_PHONE_STATE - Required in order to receive call events from the system.
    • android.permission.READ_CONTACTS - Required to retrieve the caller's contact name.
    • android.permission.READ_CALL_LOG - ONLY required if your minSdkVersion or targetSdkVersion value is higher than 15. Otherwise, this permission is implicitly granted with the READ_CONTACTS permission.


      Contacts
     

    Provides user's contact information as follows: the Contacts item is notified with a full contact list the first time the contacts sensing is enabled. Every six hours, a new state is notified if the device's contacts have changed.

    Item Identifier

    • ContextType.CONTACTS

    State Information

    • Home addresses
    • Work addresses
    • Other Addresses
    • Personal emails
    • Work emails
    • Other emails
    • Home phones
    • Mobile phones
    • Work phones
    • Other Phones
    • Relationship ("BROTHER", "CHILD", "FATHER", "FRIEND", "MOTHER", "SISTER", "PARENT", "SPOUSE", "OTHER")
    • Personal events, like birthdays, anniversaries, etc.

    Sensing Settings

    • "MONITOR_INTERVAL" (LONG) - How often a new state is notified (every 'N' milliseconds). Default: 21600000 (6 hours).
    • "HARVESTING_MODE" (STRING) - Determines the type of contact's harvesting. Default: "FULL_DETAILS".
      • "LOW_DETAILS": This mode harvest only the contact name and the phones list.
      • "MEDIUM_DETAILS": It harvest the contact name, the list of phones and emails.
      • "HIGH_DETAILS": Will harvest the contact name, the list of phones, emails, and postal addresses.
      • "FULL_DETAILS": It harvest all the contact information. The contact name, the list of phones, emails, and postal addresses. Also, will get information of events and relationships associated with the contact.

    Android permissions

    • android.permission.READ_CONTACTS - Required to access information about contacts.


      Device information
     

    Provides device characteristics information. This item is notified when the SDK is initialized and when it detects a change in the SD card slot of the device. For example, a new memory SD card is connected or removed.

    Item Identifier

    • ContextType.DEVICE_INFORMATION

    State Information

    • Device manufacturer.
    • Device model.
    • Product name.
    • Brand.
    • Phone number.
    • Total Storage size.
    • CPU model.
    • Total RAM size.
    • Hardware name.
    • Board model.
    • External memory presence.
    • OS type.
    • OS version.
    • Natural screen orientation.
    • Display height.
    • Display width.
    • Display density.
    • Display size.
    • Sensors supported.

    Sensing Settings

    • N/A.

    Android permissions

    • android.permission.READ_PHONE_STATE - Allows read only access to phone state.


      Music


    Provides information about the music listened in the native music player. A new item is notified each time an audio track is started. The music provider supports the official, native music player that comes with Android OS. Third-party music players have not been tested for support. The music provider provides varying levels of support depending on the device.

    Item Identifier

    • ContextType.MUSIC

    State Information

    • Track title.
    • Track author.
    • Track album.

    Sensing Settings

    • N/A.

    Android permissions

    • No special permissions required.


      Network
     

    Provides information related to network connections. A new item is notified when a network event occurs (for example, the network access is disconnected or connected), and by default, every two hours, the state is refreshed with traffic and other network values that change.

    Item Identifier

    • ContextType.NETWORK

    State Information

    • IP address.
    • Phone type.
    • Cell location.
    • Link Speed.
    • Network type.
    • SSID.
    • Security type.
    • Signal strength.
    • Roaming active.
    • Online time.
    • Traffic received.
    • Traffic sent.
    • Near WiFi networks.

    Sensing Settings

    • "MONITOR_INTERVAL" (LONG) - How often a new state is notified (every 'N' milliseconds) independently of the changes in the network status. Default: 7200000 (2 hours).
    • "TIME_WINDOW" (LONG) - Minimum time window required between states notification when the network status change. In milliseconds. Default: 120000 (2 minutes).

    Android permissions

    • android.permission.ACCESS_WIFI_STATE - Required to access information about Wi-Fi networks.
    • android.permission.ACCESS_NETWORK_STATE - Required to access information about networks in general.
    • android.permission.ACCESS_FINE_LOCATION - Required to access precise location from location sources such as GPS, cell towers, and Wi-Fi.
    • android.permission.INTERNET - Required to open network sockets.


      Message (SMS)
     

    Provides information about the latest 5 messages sent, received and unread from the last contacted person. A new item is notified each time the user receives, sends, or reads a message. Each category is an array with the information of the last five messages sorted by date. Each item contains the date and the message text.

    Item Identifier

    • ContextType.MESSAGE

    State Information

    • Phone number.
    • Contact name.
    • Last 5 unread messages.
    • Last 5 read messages.
    • Last 5 sent messages.

    Sensing Settings

    • N/A.

    Android permissions

    • android.permission.RECEIVE_SMS - To access information about received SMS.
    • android.permission.READ_SMS - To access information about messages saved in device.
    • android.permission.READ_CONTACTS - Required to access information about contacts.


      Device Position
     

    Detects the device’s position such as on desk, in hand or bag etc.

    Item Identifier

    • ContextType.DEVICE_POSITION

    State Information

    • "UNCHANGED": Position detected hasn't changed
    • "ON_DESK": Position detected is on desk
    • "IN_HAND": Position detected is in hand
    • "BAG_MOTION": Position detected is in bag and in motion
    • "BAG_STATIC": Position detected is in the bag and static
    • "UNKNOWN": Position detected is unknown

    Sensing Settings

    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      User-Defined Gesture
     

    Allows the user to enroll a gesture that can be identified later. The user can enroll a maximum of two gestures. The user needs to perform a desired gesture by picking up the device in the hand and moving it. It has to be performed three times for it to be successfully enrolled.

    Item Identifier

    • ContextType.USER_DEFINED_GESTURE

    State Information

    • Mode: The current mode of the UDG item state, “ENROLL” or “MATCH”.
    • Enroll Code: The current state of enrollment. It is relevant in “ENROLL” mode.
      • READY – wait till you receive this code for enrollment. Gesture performed before this code will not be recorded
      • STAGE1_SUCCEED –wait to see this enrollCode after performing the desired gesture for the first time. Then proceed to perform the same gesture for the second time.
      • STAGE2_SUCCEED- wait to see this enrollCode after performing the same gesture for the second time. Then proceed to perform the same gesture for the third time
      • ALL_SUCCEED- Indicates that enrollment is successful.

    Similar states are observed for enrolling second gesture.

    • Index: The gesture that was matched. It is relevant in “MATCH” mode.
      • FIRST - Indicates that the gesture recorded as the first gesture matched.
      • SECOND – To enroll second gesture.

    Sensing Settings

    For enabling the sensing of User Defined Gesture (UDG), we can specify a settings bundle that will configure the behavior of the sensing. There are four types of setting available for UDG: Mode, Filter, Index and Sensitivity. Developers can use UDGOptionBuilder for creating the settings bundle.

    • Mode: Indicates whether the gesture is being recorded or detected.
      • ENROLL: Enrolls a gesture.
      • MATCH: Matches an existing gesture(First or Second).
    • Index: The index of the enrolled gesture. Relevant for enroll mode.
      • FIRST – To enroll first gesture.
      • SECOND – To enroll second gesture.
    • Sensitivity: gesture recognition sensitivity. It refers to the similarity of user defined gestures when compared with the template. High sensitivity means loose threshold, which will result in high recall, low precision and vice-versa.
      • LOW
      • MIDDLE
      • HIGH
    • Filter: Indicates which gesture index is reported to the application. This setting is relevant for match mode.
      • Index.FIRST
      • Index.SECOND
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    If the settings bundle is null, or some data is not configured, the below default values are used:

    • Mode: ENROLL
    • Index: FIRST
    • Sensitivity: MIDDLE
    • Filter: First Index
    • ContinuousFlag: PAUSE_ON_SLEEP

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      Tapping Event Detection
     

    Senses when the device screen is tapped once (single tap) or twice (double tap).

    Item Identifier

    • ContextType.TAPPING

    State Information

    • SINGLE_TAP
    • DOUBLE_TAP

    Sensing Settings

    • Filter: This setting is used to make a choice of tapping to be reported.
      • SINGLE_TAP: single tap gesture detection
      • DOUBLE_TAP: double tap gesture detection
      • NONE: no sensing of tapping event
    • Sensitivity: Gesture recognition sensitivity. It refers to the similarity of user defined gestures when compared with the template. High sensitivity means loose threshold, which will result in high recall, low precision and vice-versa.
      • LOW
      • MIDDLE
      • HIGH
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    If the settings bundle is null, or some data is not configured, the below default values are used:

    • Sensitivity: MIDDLE
    • Filter: All tapping types
    • ContinuousFlag: PAUSE_ON_SLEEP

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      Shaking Event Detection
     

    Detects a shaking gesture. It is an auxiliary movement for many applications, such as gaming, media playing, etc.

    Item Identifier

    • ContextType.SHAKING

    State Information

    • ShakingItem does not contain any data fields.

    Sensing Settings

    For enabling the sensing of Shaking Event Detection, we can use ShakingOptionBuilder. The only supported configuration is the sensitivity of the gesture recognition.

    • Sensitivity: Gesture recognition sensitivity. It refers to the similarity of user defined gestures when compared with the template. High sensitivity means loose threshold, which will result in high recall, low precision and vice-versa.
      • LOW
      • MIDDLE
      • HIGH
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    If the settings bundle is null, or some data is not configured, the below default values are used:

    • Sensitivity: MIDDLE
    • ContinuousFlag: PAUSE_ON_SLEEP

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      Lift and Look Event Detection
     

    Senses lifting of the device. It senses whether the device was lifted vertically or non-vertically. It also senses whether the user was looking at the device while lifting it.

    • Acceptable Pitch Range

    Device should be kept stable in portrait or landscape mode, with a pre-defined acceptable pitch range, about 25 ~ 85 degrees, shown in the figure below.

    Acceptable Pitch Range

    • Ambiguous Pitch Range

    The ambiguous pitch range is 15 ~ 25 degree and 85 ~ 95 degree as shown in the figure below. In this range, it’s possible to detect or miss the lift & look event.

    Ambiguous Pitch Range

    To detect Lift, the Y axis or the X axis of the phone should face the sky. It need not be fully vertical, it can be -70 ~ 70 degree tilted to the ground.

    Y Axis Face SkyX Axis Face Sky

    Item Identifier

    • ContextType.LIFT

    State Information

    • Device lift orientation:
      • VERTICAL
      • NON_VERTICAL
    • User looking mode:
      • LOOK
      • NONE

    Sensing Settings

    For enabling the sensing of Lift & Look context type, we can specify a settings bundle that will configure the behavior of the sensing. Developers can use LiftOptionBuilder for creating this settings bundle. There are two available configurations: enable look detection, and enable vertical detection.

    • Look Detection: Boolean value to enable look detection.
    • Vertical Detection: Boolean value to enable vertical/non-vertical detection.
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    If the settings bundle is null, or some data is not configured, the below default values are used:

    • Look detection enabled: true
    • Vertical detection enabled: true
    • ContinuousFlag: PAUSE_ON_SLEEP

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      Instant Activity
     

    Instant Activity senses activity of the person carrying the device, but unlike Activity Recognition, it provides instant reaction about the user’s current activities. It can be used in action games.

    Item Identifier

    • ContextType.INSTANT_ACTIVITY

    State Information

    • Instant Activity:
      • WALKING
      • RUNNING
      • SEDENTARY
      • JUMPING

    Sensing Settings

    • Filter: This setting is used to make a choice of activities to be reported. By default, all of the following four activities will be sensed.
      • "WALKING" : User is walking (speed should be higher than 80 steps / min)
      • “RUNNING”: User is running, (speed should be higher than 130 steps / min)
      • “SEDENTARY”: User is not doing any activity (device is stationary)
      • “JUMPING”: User is jumping (holding device in hand)
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      Flick Event Detection
     

    Senses the occurrence of flick gesture events that the user performs with the device. It detects flicks in four directions (left, right, up and down), and also left and right double flicks.



    Item Identifier

    • ContextType.GESTURE_FLICK

    State Information

    • Inferred flick type:
      • LEFT_FLICK
      • RIGHT_FLICK
      • UP_FLICK
      • DOWN_FLICK
      • LEFT_FLICK_TWICE
      • RIGHT_FLICK_TWICE
      • NONE_FLICK

    Sensing Settings

    For enabling the sensing of Flick gesture event recognition, we can use GestureFlickOptionBuilder. The option builder could be configured to filter the flick types the provider should sense, and the sensitivity of the event recognition.

    Flick provider reports two events simultaneously. First type of event is based on the direction of the flick according to the phone’s position and second type of event is based on the orientation of the flick. For clarification note that, orientation flick is independent of the phone’s position. When the device is moved parallel to the ground, it will report HORIZONTAL_FLICK and when the device is moved perpendicular to the ground,it will report VERTICAL_FLICK. Currently, orientation flick is not reported on ISH devices.

    When you move the device perpendicular to the ground, you will get VERTICAL_FLICK.

    • Filters for direction flick: Used to make a choice of the flick events to be reported.
      • "LEFT_FLICK" : left flick gesture detection
      • “RIGHT_FLICK”: right flick gesture detected
      • “UP_FLICK”: up flick gesture detected
      • “DOWN_FLICK”: down flick gesture detected
      • “LEFT_FLICK_TWICE”: double left flick gesture detected
      • “RIGHT_FLICK_TWICE”: double right flick gesture detected
      • “NONE_FLICK” : flick detected is not in the filter list
    • Filters for orientation flick: Used to make a choice of the flick events to be reported.
      • “VERTICAL_FLICK”: vertical flick gesture detected
      • “HORIZONTAL_FLICK”: horizontal flick gesture detected
      • “VERTICAL_TWICE”: double vertical flick gesture detected
      • “HORIZONTAL_TWICE”: double horizontal flick gesture detected
      • “NONE_FLICK” : flick detected is not in the filter list
    • Sensitivity: Gesture recognition sensitivity. Low sensitivity means the sensor will recognize flick gesture when the device is flicked harder. High sensitivity means the sensor will recognize the flick gesture when the device is flicked softly.
      • LOW
      • MIDDLE
      • HIGH
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    If the settings bundle is null, or some data is not configured, the below default values are used:

    • Filter: all flick types
    • Sensitivity: MIDDLE
    • ContinuousFlag: PAUSE_ON_SLEEP

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      Ear Touch Event Detection
     

    Senses the occurrence of ear touch events when the device is picked up to answer a voice call.

    Item Identifier

    • ContextType.GESTURE_EAR_TOUCH

    State Information

    • Inferred ear touch type:
      • EAR_TOUCH
      • EAR_TOUCH_BACK
      • NONE

    Sensing Settings

    For enabling the sensing of Ear Touch Activity recognition, we can use GestureEarTouchOptionBuilder. The only configuration available of this option builder is Filter that allows specifying the Ear Touch types the provider will sense.

    • Filter: Used to make a choice of ear touch events to be reported. By default, all ear touch event types will be sensed.
      • "EAR_TOUCH" : The user has the device near the ear in normal position - screen toward user’s ear
      • "EAR_TOUCH_BACK": reverse gesture of ear touch
      • "NONE": ear touch detected is not in the filter list
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    If the settings bundle is null, or some data is not configured, the below default values are used:

    • Filter: all ear touch types
    • ContinuousFlag: PAUSE_ON_SLEEP

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      Glyph Gesture Detection
     

    Provides recognition for glyph gestures the user can make holding the device as a pen, drawing glyphs in the air. The user can draw both letters and numbers.

    Item Identifier

    • ContextType.GLYPH

    State Information

    • Inferred Glyph:
      • LETTER_A
      • LETTER_B
      • LETTER_C
      • LETTER_D
      • LETTER_E
      • LETTER_F
      • NUMBER_ONE
      • NUMBER_TWO
      • NUMBER_THREE
      • NUMBER_FOUR
      • NUMBER_FIVE
      • NUMBER_SIX
      • NUMBER_SEVEN
      • NUMBER_EIGHT
      • NUMBER_NINE
      • NUMBER_ZERO
      • NONE

    Sensing Settings

    For enabling the sensing of Glyph gesture recognition, we can use GlyphOptionBuilder. The option builder could be configured to filter the glyph types the provider should sense.

    • Filter: Used to make a choice of the glyph gestures to be reported
      • LETTER_A
      • LETTER_B
      • LETTER_C
      • LETTER_D
      • LETTER_E
      • LETTER_F
      • NUMBER_ONE
      • NUMBER_TWO
      • NUMBER_THREE
      • NUMBER_FOUR
      • NUMBER_FIVE
      • NUMBER_SIX
      • NUMBER_SEVEN
      • NUMBER_EIGHT
      • NUMBER_NINE
      • NUMBER_ZERO
      • NONE
    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    If the settings bundle is null, or some data is not configured, the below default values are used:

    • Filter: all Glyphs types
    • ContinuousFlag: PAUSE_ON_SLEEP

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)


      PanZoomTilt Gesture Detection
     

    Provides information related to motion control. It refers to the rotation of the device along its X, Y and Z axes. This gesture can be used for the photo viewer feature.

    PanZoomTilt Gesture Detection

    Item Identifier

    • ContextType.PANZOOMTILT

    State Information

    • DeltaX: rotation along X axis of the device
    • DeltaY: rotation along Y axis of the device
    • DeltaZ: rotation along Z axis of the device

    Sensing Settings

    • ContinuousFlag: Setting can be added to wake up the app when the device is in sleep mode and if a new context type state is received. This is applicable only to devices with Intel Sensor Hub.
      • NOPAUSE_ON_SLEEP: Wake up the application if the device is in sleep mode and new event is received.
      • PAUSE_ON_SLEEP: Do not wake up the application if the device is in sleep mode and new event is received. This is the default option.

    Android permissions

    • intel.aware.permission.ACCESS_AWARESERVICE (For IA based devices)

     


    Energy Expenditure
     

    Continuously senses the amount of calories that the user burned.

    Item Identifier

    • ContextType.ENERGY_EXPENDITURE

    State Information

    • Total calories burned since the initiation..

    Sensing Settings

    • Age: Indicates the age group of the user. Instead of exact number an average age of the user is used because of privacy reasons.
      • TEEN: Represents 10-19 years of age. Assumed as 15.
      • ADULT: Represents 20-29 years of age. Assumed as 25.
      • MIDDLE_AGED: Represents 30-39 years of age. Assumed as 35.
      • SENIOR: Represents 40-59 years of age. Assumed as 55.
      • OLD_SENIOR: Represents 60+ years of age. Assumed as 70.
    • Gender: Indicates the gender of the user. It accepts two enums.
      • FEMALE
      • MALE
    • Weight: Accepts a value in kilograms. Accepted range is 0 to 300.
    • Height: Accepts a value in centimeters. Accepted range is 0 to 300.

    Note: PII is needed to estimate metabolomics activity. Even if the user is not active, calories counter will increase slowly as the body keep burning calories.

    Android permissions

    • No special permissions required.

     



      Voice Key Phrase Recognition
     

    A custom provider that can recognize certain voice key phrases. Once this provider is enabled it will look for a specific “wake-on-voice” phrase followed by a known phrase in the audio stream coming through the microphone. Currently the only supported wake-on-voice phrase is “Hello Computer”. This means if the user says “Hello computer take picture”, this provider will recognize the “take picture” as a known key phrase. Here is the complete list of known key phrases:

    Key phrases

    INDICATOR RIGHT
    INDICATOR LEFT
    STOP INDICATOR
    ENABLE HEADLIGHT
    DISABLE HEADLIGHT
    ENABLE HELMET LIGHTS
    DISABLE HELMET LIGHTS
    WARNING LIGHTS ON
    WARNING LIGHTS OFF
    ENABLE H M D
    DISABLE H M D
    ENABLE SPEED CONTROL
    DISABLE SPEED CONTROL
    SHOW GEAR
    SPEED
    START GOPRO
    STOP GOPRO
    START VIDEO
    STOP VIDEO
    TAKE PICTURE

    Please refer to Custom State Provider Development Guide for using this provider in your Android app. Item Identifier

    Item Identifier

    • urn:intel:context:type:custom:voicekey

    State Information

    • The detected voice key phrase as a string value.

    Sensing Settings

    • No additional sensing settings is necessary.

    Android permissions

    "android.permission.RECORD_AUDIO"

    "android.permission.WRITE_EXTERNAL_STORAGE"


    Mode of Transport
     

    Provides information about the transportation route that the user is taking. This context state requires the developer to enable Activity Recognition and Location Context Types. When the user activity, changes to “INCAR”, the Mode of Transport Context Type starts comparing the user route with the available transport routes around their location. The Mode of Transport Context type is currently in the beta stage and provided as a custom state.

    Please refer to Custom State Provider Development Guide for using it in your Android app. Item Identifier

    • urn:intel:context:type:custom:mocklocationactivity

    State Information

    • Current transport mode: TRANSIT, CAR, UNKNOWN
    • Possible routes: List of possible route names
    • Closest transit route information
      • Route direction
      • Route Name
      • Transit Agency Id
      • Closest Stop
      • Information of all the stops
        • Departure time
        • Stop Id
        • Latitude
        • Longitude
      • Scheduled Average Speed

    Android permissions

    • android.permission.ACCESS_NETWORK_STATE - In order to check the network status availability.

    Face Recognition
     

    Note: This provider is only compatible with x86 devices.

    Allows user to enroll face data of persons and run face recognition on camera frames. Up to 8 persons can be recognized in each camera frame. Users are registered with JPEG images containing the face. The provider also returns face detection data with bounding box of detected faces and the associated confidence of face detection and recognition.

    Item Identifier

    • ContextType.FACERECOGNITION
    • urn:x-intel:context:type:device:facerecognition

    State Information

    • FaceRecognitionItem object with the following information:
      • Image frame captured from camera
      • Image frame width and height
      • Number of faces detected
      • Number of persons recognized
      • Arraylist of PersonRecognized objects:
        • Registered ID of person
        • Confidence of face detection
        • Similarity of recognized face
        • Bounding box of detected face

    Sensing Settings

    • Camera: Integer ID of the android camera to use.
    • TrainingFolders: HashMap of face data folders mapped to integer person IDs
    • Continuous: Perform face recognition in continuous mode (True/False)
    • FramesWanted: Number of camera frames to grab and process. Does not apply in Continuous mode
    • TimeBetweenFrames: Time to wait between frames in seconds
    • StopWhenRecognized: Boolean to indicate whether the provider should stop when a face is recognized

    Android permissions

    • No special permissions required.
    • “android.permission.READ_EXTERNAL_STORAGE”
    • “android.permission.WRITE_EXTERNAL_STORAGE”
    • “android.permisison.CAMERA”

    Android feature

    • “android.hardware.camera2”
For more complete information about compiler optimizations, see our Optimization Notice.