This is the list of the core contextual properties of the Maemo platform.

This document is maintained as part of the contextkit package. Please report change requests as bugs against the contextkit package.

NOTE: Most of these properties are unstable and their definition will change for some time still. Only the ones explicitly marked as stable should be used for now.

Display screens

These properties talk about the display screens of the device.

Screen.TopEdge (Enumeration of strings)

The edge of the main display screen where the user expects the top-most UI elements to be. Possible values are the strings "top", "bottom", "left", and "right", which refer to the edges of the screen in its normal orientation as defined by the graphics hardware. (stable)

Possible enumeration values:

top
bottom
left
right
Screen.IsCovered (bool)

Whether or not the main display screen is covered and can thus not be seen by the user. This might mean that the device is laying face down on a table, or that its lid is closed if it has one. (stable)

Location

Best effort location information. If any of the keys are not appliciable to the current location, they will be unavailable.

Location.SatPositioningOn (bool)

A boolean indicating whether or not the location information is provided by satellite positioning system e.g. GPS.

Location.ActiveSources (List of location-sources)

List of active sources of location information.

Location.Accuracy (distance)

Accuracy of the location information, in meters.

Location.Coordinates (List of numbers)

The coordinates of the current position as a list of two or three doubles. The first two elemets are latitude and longitude, respectivly, in degrees. The third element, when present, is the altitude in meter.

Location.Street (string)

The street nearest the location of the device, as a localized string.

Location.PostalCode (string)

The postcode of the location of the device, as a localized string.

Location.Area (string)

The name of the local area where the device is, for example a neighborhood or campus, as a localized string.

Location.Locality (string)

The name of the village, town or city where the device is, as a localized string.

Location.Region (string)

The administrative region which contains the location of the device, as a localized string.

Location.Country (string)

The country which contains the location of the device, as a localized string.

Location.CountryCode (string)

The ISO 3166 two letter country code of the country which contains the location of the device.

Location.Heading (number)

The deviation, in degrees (0-360), from the geographical north.

Location.Timezone (string)

TBD

Location.TimezoneOffset (duration)

TBD

Location.Continent (string)

The name of the current continent, as a localized string.

Location.Planet (string)

The name of the current planet (or dwarf planet), as a localized string.

Location.PointOfInterest (tracker-uri)

The URI of the current point of interest, if any. (The URI points to a Tracker object inside the Content Framework.)

Location.NearbyContacts (List of tracker-uris)

A list of URIs for contacts that are physically nearby.

Position

Information about the physical position of the device.

Position.Stable (bool)

A boolean indicating whether or not the position of the device is stable, i.e., the device does not move.

Position.Shaky (bool)

A boolean indicating whether or not the device is moving rapidly. Not necessarily the opposite of Position.Stable; both may be false simultaneously.

Battery

Information about the batteries of the device.

Battery.ChargePercentage (percentage)

The average charge level of the currently connected batteries. Expressed as percentage of the maximum charge level.

Battery.OnBattery (bool)

Whether or not the device is currently running on battery power, i.e., whether at least one of its batteries is currently discharging.

Battery.LowBattery (bool)

Whether or not the device is currently running on low battery power. True if OnBattery is true and the charge levels of all batteries are below 10%.

Battery.IsCharging (bool)

Whether or not the device is currently charging at least one of its batteries.

Battery.TimeUntilLow (duration)

Estimates the time that the device can run on battery before the property OnLowBattery becomes true. In seconds.

Battery.TimeUntilFull (duration)

Estimates the needed charging time of the device. In seconds.

System

Information about the current state of the device.

System.MemoryPressure (int-enum)

Current memory load. Possible values: 0 (normal), 1 (high; low watermark exceeded), 2 (critical; high watermark exceeded).

Type parameters:

normal

ARRAY(0xa1c8978)

high

ARRAY(0xa1c8a08)

critical

ARRAY(0xa1c8a78)

Internet connectivity

Information about the connection of the devide to the Internet.

Internet.NetworkType (Enumeration of strings)

The type of the current connection to the Internet. This is one of the strings "wifi", "wimax", "cellular", "bluetooth", "ethernet", or "usb". (From ConnMan. New types might be defined in the future, of course.)

Possible enumeration values:

wifi
wimax
cellular
bluetooth
ethernet
Internet.NetworkName (string)

The name of the current network.

Internet.NetworkState (Enumeration of strings)

The state of the Internet connection, as one of "connected", "disconnected", and "connecting".

Possible enumeration values:

disconnected
connecting
connected
Internet.SignalStrength (percentage)

The signal strength of the current connection to the Internet. For example, when Internet.NetworkType is "cellular", this is the signal strength at the cellular radio, when it is "wifi", it is the signal strength at the WLAN radio.

Internet.TrafficOut (percentage)

A rough indication of the current traffic rate to the Internet, in percent of the maximum possible rate.

Internet.TrafficIn (percentage)

A rough indication of the current traffic rate from the Internet, in percent of the maximum possible rate.

Bluetooth

Information about Bluetooth related things.

Bluetooth.Enabled (bool)

A boolean indicating whether or not the Bluetooth radio is enabled.

Bluetooth.Visible (bool)

A boolean indicating whether or not the device is visible to other Bluetooth devices when they search for others.

Cellular

Information about the cellular radio.

Cellular.NetworkName (string)

The name of the cellular network.

Cellular.SignalStrength (percentage)

The signal strength at the cellular radio, in percent of the maximum.

Cellular.Technology (Enumeration of strings)

The currently used Radio Access Technology.

Possible enumeration values:

gsm
umts
Cellular.DataTechnology (Enumeration of strings)

The currently used Radio Access Technology for data transfer.

Possible enumeration values:

gprs
egprs
umts
hspa
Cellular.RegistrationStatus (Enumeration of strings)

The current cellular network registration status.

Possible enumeration values:

home

Registered with the home network

roam

Roaming

no-sim

No SIM card is present

offline

Cellular radio is powered off

forbidden

Cellular access is denied, e.g., because of invalid SIM

User alarms

Information about the alams set by the user. We assume, that the user can disable or enable all the alarms. In addition, the user can enable or disable each alarm individually.

UserAlarm.Present (bool)

Indicates whether there is an upcoming alarm set by the user. Can be true even if alarms are disabled.

UserAlarm.Enabled (bool)

Indicates whether the alarms are enabled or disabled by the user. If there are no alarms, UserAlarm.Enabled is true.

UserAlarm.NextTime (time)

The time of the next (enabled) alarm, in Unix time (the number of seconds since January 1.1.1970 00:00 UTC). If no alarms are present, the value is Unknown.

UserAlarm.NextDescription (string)

The description of the next (enabled) alarm. If no alarms are present, the value is Unknown.

UserAlarm.NextCookie (integer)

The cookie of the next (enabled) alarm. The cookie can be used for referring to the alarm when communicating with timed.

Environment

Information about the environment the device is in.

Environment.SunRise (time)

The time of sun rise.

Environment.SunSet (time)

The time of sun set.

Environment.Weather (Map)

The current weather. See http://www.ominous-valve.com/wx_codes.txt for more information about codifying weather conditions. We should lift something from there, if just for extra geek points.

Possible map keys:

Condition

The current weather condition, as a localized, human readable string. Examples are "Cloudy", "Raining", etc.

ConditionCode

The current weather condition, as a symbolic string. The set of symbols is to be defined, but it will be fixed and quite small so that you can provide an icon for each of them, etc.

Humidity

The relative humidity in percent.

Temperature

The temperature as a localized string. This string represents the temperature in the way preferred by the user. Most often this means either degrees Celsius or degrees Fahrenheit, but it could be some other unit entirely.

TemperatureK

The temperature in Kelvin.

ApparentTemperature

The felt temperature as a localized string, analogous to Temperature.

ApparentTemperatureK

The felt temperature in Kelvin.

DewPoint

The dew point as a localized string, analogous to Temperature.

DewPointK

The dew point in Kelvin.

Pressure

The atmospheric pressure in milli bar.

Precipitation

The rain or snow fall in millimeter per square meter per hour (or some other more common unit).

Visibility

The visibility in meter.

WindSpeed

The wind speed in meters per second.

WindDirection

The wind direction as a localized string. The direction is given in compass terms: North, South-West, etc.

WindDirectionD

The wind direction in degrees. North is 0, east is 90, etc.

Environment.IsDark (bool)

Whether or not it is especially dark.

Environment.IsBright (bool)

Whether or not it is especially bright.

Environment.IsLoud (bool)

Whether or not it is especially loud.

Use

Information about the current usage context of the device.

Situations are a UI concept similar to Profiles that allows the user to have different customizations for his/her device and automatically/explcicitly switch between them. Typical Situations are "AtHome", "AtWork", "InMeeting" etc. Some of them are probably pre-defined, others can be defined by the user. Situations might form a hierarchy: InMeeting includes AtWork.

Not much is known about all this right now.

Use.Situations (string-list)

The symbolic names of the currently active Situations. Note that more than one situation might be active at the same time.

Use.Mode (Enumeration of strings)

Deprecated.

The current main usage mode of the device.

Possible enumeration values:

editing

The user is interacting closely with the device and is creating new content, such as when composing a email message or creating any other kind of document.

recording

The user is taking pictures, or recording video or audio.

browsing

The user is interacting closely with the device without creating new content, such as when browsing search results, or browsing through his/her music collection.

watching

The user is watching a video, without closely interacting with the device.

listening

The user is listening to audio, without closely interacting with the device.

reading

The user is reading a document, such as when reading a article on the web or a e-book.

chatting

The user is involved in a real-time, text-based dialog with external parties.

gaming

The user is interacting closely with the device, for entertainment.

calling

The user is involved in a real-time, audio- or video-based dialog with external parties.

active

The user interacting closely with the device, for an activity that doesn’t fit into any of the above categories.

idle

The device is not being used.

maintenance

The user is doing system-wide maintenance work such as restoring a backup or upgrading the OS software.

Use.ConnectedContacts (List of tracker-uris)

A list of URIs for contacts that the user is currently engaged in conversations with. (The URIs point to Tracker objects.)

Use.RecentDocuments (List of tracker-uris)

A list of URIs for recently used documents, at most ten elements long. (The URIs point to Tracker objects.)

Use.Keyboarding (bool)

Whether or not the user is ready to use the keyboard. This property is true when a slideout keyboard has been slided out, for example, or when a transformer laptop with a tablet mode is in "laptop mode".

Use.Phoning (bool)

Whether or not the user is using the device as a telephone handset, holding it next to ear and mouth.

Events

Information about current and upcoming calendar entries.

Event.Current (List of tracker-uris)

The currently active events, as a list of Tracker URIs. The list contains all events whose start time is earlier than or equal to the current time, and whose end time is later.

Event.CurrentStart (time)

The earliest start time of the events in Events.Current.

Event.CurrentEnd (time)

The latest end time of the events in Events.Current.

Event.Next (List of tracker-uris)

The upcoming events, as a list of Tracker URIs. The list contains those events whose start time is later than the current time and closest to now. If there are multiple events in the list, they all start at exactly the same time.

Event.NextStart (time)

The earliest start time of the events in Events.Next.

Event.NextEnd (time)

The latest end time of the events in Events.Next.

Profiles

Information about the expected behavior of the device.

Profile.Name (string)

The name of the currently active profile as a localized string. You should not try to interpret this string, it is only meant to be displayed as a reminder to the user.

Session

Information about the current user session. If there is no current session, all values are null.

Session.State (Enumeration of strings)

The state of the current session, as string valued enumeration.

The session is in the "normal" state when the normal desktop UI components such as the panel, desktop icons, taskbars, notification areas and status menus are available to the user.

The session goes to the "blanked" state when the user stops interacting with it and the the screen is blanked. In general, there is no point in trying to interact with the user when the session is blanked.

The session is in the "fullscreen" state when the complete screen has been given to an application, such as full-screen video playback. In that state, the notification areas and status menus, etc of the desktop aren’t visible to the user, of course, and notifications should be unintrusive and important.

Applications should be prepared to see all states in any kind of order without getting confused.

+

Possible enumeration values:

normal
fullscreen
blanked

Media

Information about media related activity.

Media.NowPlaying (Map)

The currently playing media, such as a video or audio track. The value is a dictionary with the listed entries. If "resource" is included, then "title", "artist", "genre", and "album" are consistent with what Tracker has stored.

The current position in the media is always "current-time - start-time". If the user seeks then that is expressed by changing "start-time". In other words, "start-time" is not the point in time when the user has clicked the play button, it is the point in time when the media would have had to start to play uninterrupted to reach its current position now. This slight complication is done in favor of transmitting the position directly to avoid telling you once every second that it is now one second later.

+

Possible map keys:

resource
title
artist
genre
album
duration
start-time
state