Core Context Properties
=======================
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.
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)_
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.
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.
The street nearest the location of the device, as a localized string.
The postcode of the location of the device, as a localized string.
The name of the local area where the device is, for example a
neighborhood or campus, as a localized string.
The name of the village, town or city where the device is, as a localized string.
The administrative region which contains the location of the device, as a localized string.
The country which contains the location of the device, as a localized string.
The ISO 3166 two letter country code of the country which contains the location of the device.
TBD
TBD
The name of the current continent, as a localized string.
The name of the current planet (or dwarf planet), as a localized string.
The URI of the current point of interest, if any. (The URI points to
a Nepomuk object inside the Content Framework.)
A list of URIs for contacts that are physically nearby. (The URIs
point to Nepomuk objects.)
Battery
-------
Information about the batteries of the device.
The average charge level of the currently connected batteries.
Expressed as percentage of the maximum charge level.
Whether or not the device is currently running on battery power,
i.e., whether at least one of its batteries is currently discharging.
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%.
Whether or not the device is currently charging at least one of its batteries.
Estimates the time that the device can run on battery before the property
OnLowBattery becomes true. In seconds.
Estimates the needed charging time of the device. In seconds.
Internet connectivity
---------------------
Information about the connection of the devide to the Internet.
The type of the current connection to the Internet, such as GPRS,
WLAN, etc. The possible value are TBD.
The name of the current access point.
The state of the Internet connection, values TBD but will include
things like "connected, "disconnected", "connecting".
The unique id of the network.
(Unclear)
The signal strength of the current connection to the Internet. This
will be 100% percent for wired connections, usually.
Whether or not traffic to/from the Internet is billed per data volume
(property is false) or per time (property is true).
A rough indication of the current traffic rate to the Internet, in
percent of the maximum possible rate.
A rough indication of the current traffic rate from the Internet, in
percent of the maximum possible rate.
Bluetooth
---------
Information about Bluetooth related things.
A boolean indicating whether or not the Bluetooth radio is enabled.
A boolean indicating whether or not the device is visible to other
Bluetooth devices when they search for others.
A rough indication of the current outgoing traffic rate over
Bluetooth, in percent of the maximum possible rate.
A rough indication of the current incoming traffic rate over
Bluetooth, in percent of the maximum possible rate.
The strength of the Bluetooth radio connection.
Environment
-----------
Information about the environment the device is in.
Whether or not it is dark.
The time of sun rise.
The time of sun set.
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.
+
The value of the weather property is a dictionary with the following
keys. All keys are optional and additional keys might be present.
+
- *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.
Whether or not it is especially dark.
Whether or not it is especially bright.
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.
The symbolic names of the currently active Situations. Note that more
than one situation might be active at the same time.
The current main usage mode of the device, as one of the following
choices:
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.
A list of URIs for contacts that the user is currently engaged in
conversations with. (The URIs point to Nepomuk objects.)
A list of URIs for recently used documents, at most ten elements long.
(The URIs point to Nepomuk objects.)
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".
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.
The currently active events, as a list of Nepomuk URIs. The list
contains all events whose start time is earlier than or equal to the
current time, and whose end time is later.
The earliest start time of the events in Events.Current.
The latest end time of the events in Events.Current.
The upcoming events, as a list of Nepomuk 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.
The earliest start time of the events in Events.Next.
The latest end time of the events in Events.Next.