Skip to content

Event Information

The Support Application generates different events, with each event containing specific data points. Some data points are common to all events.

Events

The following details the different events that are supported.

applog

A custom application log used by individual applications to indicate an action has occurred.

Field Data Type Description
airplaneMode Boolean Indicates whether the device currently has airplane mode enabled.
cellularState String Indicates the current state of the device's cellular service (i.e., 'CONNECTED' and 'DISCONNECTED').
network Object Collection of wifi information that includes whether or not wifi is enabled.
details.tag String Defines a category for the applog event occurring (e.g. "loginStart", userReauth, RemoteSessionInfo, etc.).
details.message String Additional information on the logged event. Often logged JSON data or a brief description such as an error message.
details.package String Package name of the application logging the event.

appusage

Event indicates the usage of an application. The event is generated when the user changes to another application, and will log the details of the previous application.

Example steps:

  1. User is in Launcher, logs in.
  2. User opens an application A (calculator, or any other app). Uses the app for at least a few seconds.
  3. User goes back to Launcher. The agent should generate an appusage event for the application that was previously opened.
Field Data Type Description
startTime Date/Time Calculated start time of the application launch.
endTime Date/Time Date/Time when application went into background.
duration long Length of time, in seconds, that the application was in the foreground.
screenOnDuration long Length of time, in seconds, that the screen was on while application in foreground.
packageName String Name of the package representing the application.
packageLabel String The display name of an application.

Example Event

appusage_history

This Event provides application usage for a time period range.

Field Type Description
details.message String An JSON object with execution time and array of applications.

The details.message column will contain a JSON object with the begin and end date ranges, and a data array of objects. Each entry in the array will indicate a different application.

{
    beginDate: 'the beginning of the date range',
    data: [
        {
            "packageName":  name of the package,
            "foregroundServiceUsed": number of seconds foreground services executed
            "inForeground": number of seconds in foreground,
            "timeVisible": number of seconds visible
        }
    ],
    endDate: 'the end of the date range'
}

Example Event

batterycycle

Event indicates the battery has cycled.

A battery cycle is calculated during power change. When the battery level goes up, the incrementmental value change is tracked. Once this incremental value equals to 100, it is considered a battery cycle.

Example:
1. The device battery starts at 90.
2. The device charges to 100.  That is a change of 10.  10 is added to internal storage.
3. The device battery drains to 50.
4. The device charges to 80.  That is a change of 30.  This is added to internal storage, which is now 40.

Example Event

bluetoothevent

Event indicating a change in Bluetooth state or pairing status.

Field Data Type Description
bluetooth Object Collection of events with information on Bluetooth state and paired devices.
details.tag String Defines a category for the Bluetooth event occurring: "bluetooth_pairing_request", "bluetooth_state_change", "bluetooth_connected", or "bluetooth_disconnected".

Example Event

bluetooth_le

Event showing BLE information for connected Bluetooth Low Energy devices.

Field Data Type Description
details.message String Contains a JSON representation of data from the BLE device.

Example Event

boot

Event indicates the device just booted up. Will start tracking the Settings.

Field Data Type Description
deviceSettings Object Collection of Settings information: devMode, adbEnabled, usb, rootAccess, disabledlockScreen.
devicedetails Object Collection of OS related information: os, build, kernel, type.
ntpServer String IP address of a device's configured NTP server.

Example Event

cellularchange

Tracks changes in information or state of the device's cellular service

Field Data Type Description
airplaneMode Boolean Indicates whether the device currently has airplane mode enabled
cellularState String Indicates the current state of the device's cellular service (i.e., 'CONNECTED' and 'DISCONNECTED')
cellularNetwork String The type of the cellular network that the device is using (e.g., 'LTE')
cellularInfo String An array printed as a string that describes the cellular network
lastCellularLevel int Signal level of the cellular network
wifiInfo Object Collection of wifi information that includes whether or not wifi is enabled
gps Object Collection of GPS information that includes whether it's enabled and where the device is

Example Event

exception

Event indicates an Exception occurred within the Optiko Agent.

Field Data Type Description
stackTrace String The stack trace of the error

Example Event

heartbeat

Event is fired to let the server know that this device is still active. Occurs every 15-30 minutes (configurable).

Field Data Type Description
airplaneMode Boolean Indicates whether the device currently has airplane mode enabled
cellularState String Indicates the current state of the device's cellular service (i.e., 'CONNECTED' and 'DISCONNECTED')
network Object Collection of wifi information that includes whether or not wifi is enabled
bluetooth Object Collection of events with information on Bluetooth state and paired devices.

Example Event

installedapplications

Event gives a list of installed user applications. Generated under these conditions:

  • On initial start of application (silent initialization, device boot), is not connected to power, and installAppsOnBoot is true.
  • Power connection change, device is discharging, and installAppsUncradled is true.
Field Data Type Description
appdetails Array List Array of objects contain "label", "name" and "ver" of packages installed.

Example Event

licensecheck

Event indicates a warning or error with a device license.

location

This event is generated when the Find Device processing is occuring.

lowbattery

To indicate that battery is getting low. System typically invokes when battery level gets below 15%.

Example Event

lowmemory

To indicate that memory is getting low. onLowMemory at application level.

Example Event

lowstorage

This event is generated when one of four locations are over 80% used. This usage is check on device Boot, when an application is installed or removed, on request (via SilentInitActivity), and on a timer.

Example Event

missingpermissions

Event indicates that the Support Application is missing permissions. Introduced in version 5.14.2.

Example Event

Field Type Description
details.message String An array list of the missing permissions.

networkevent

Tracks information of current network connection.

Describes the properties of a network link. A link represents a connection to a network. It may have multiple addresses and multiple gateways, multiple dns servers but only one http proxy and one network interface.

Field Data Type Description
dnsServer List<InetAddress> List of IP address of DNS servers
domains String The DNS domains search path set for this link
proxyHost String The host of the proxy
proxyPort int The port of the proxy
proxyExclusionList String[] List of hosts for which the proxy is ignored
interfaceName String Interface name for this link
linkAddresses ArrayList<LinkInformation> List of LinkInformation that contains: host InetAddress, host flags, host scope
routes ArrayList<RouteInformation> List of information of all routes set to this link

Network Information

Field Data Type Description
detailedState String Reports the current fine-grained state of the network.
extraInfo String Report the extra information about the network state, if any was provided by the lower networking layers.
isAvailable Boolean Indicates whether network connectivity is possible.
isFailover Boolean Indicates whether the current attempt to connect to the network resulted from the ConnectivityManager trying to fail over to this network following a disconnect from another network.
isConnected Boolean Indicates whether network connectivity exists and it is possible to establish connections and pass data.
isRoaming Boolean Indicates whether the device is currently roaming on this network. When true, it suggests that use of data on this network may incur extra costs.
networkType Integer Reports the type of network (mobile, wifi, wimax, ethernet, bluetooth)
state String Reports the current coarse-grained state of the network.
subtype Integer Return a network-type-specific integer describing the subtype of the network.
subtypeName String Return a human-readable name describing the subtype of the network.
typeName String Return a human-readable name describe the type of the network, for example "WIFI" or "MOBILE".
reason String Report the reason an attempt to establish connectivity failed, if one is available.

Wifi Information

Field Data Type Description
connected Boolean Indicates whether network connectivity exists and it is possible to establish connections and pass data.
hiddenSSID Boolean true if this network does not broadcast its SSID, so an SSID-specific probe request must be used for scans.
bssid String Return the basic service set identifier (BSSID) of the current access point. The BSSID may be null if there is no network currently connected.
linkSpeed Integer Returns the current link speed in Mbps.
networkId Integer Each configured network has a unique small integer ID, used to identify the network when performing operations on the supplicant.
ssid String Returns the service set identifier (SSID) of the current 802.11 network.
roaming Boolean Indicates whether the device is currently roaming on this network. When true, it suggests that use of data on this network may incur extra costs.
rssi Integer Returns the received signal strength indicator of the current 802.11 network, in dBm.
macAddress String Returns device's MAC address.
connectType String Type of network connection. Values are "WIFI" and "MOBILE".
connectSubtype String Return a human-readable name describing the subtype of the network.
ipAddress String Return device's IP address.
frequency Integer Returns the current frequency in MHz.
gateway String Returns the gateway address.
dns1 String Domain Name Server name.
dns2 String Alternate Domain Name Server name.
proxy String Defines the http proxy configuration.
savedNetworks ArrayList<String> List of SSIDs of saved networks.

Example Event

networksession

Event indicates a change in SSID / BSSID. Then event is generated when a Connection Change event occurs.

Field Data Type Description
startTime Date/Time Start Date/time of the connection
endTime Date/Time Date/Time when connection lost
duration long Duration, in seconds, of the connection
minRssi long Minimum Rssi value duration connection
maxRssi long Maximum Rssi value duration connection
avgRssi double Average Rssi value duration connection
ssid String SSID of the Connection
bssid String BSSID of the Connection

Example Event

packageadd

Event indicates the package / application has been Added to the system.

Field Data Type Description
appdetail contains package Label, Name and the Version

Example Event

packageremove

Event indicates the package / application has been removed from the system.

Field Data Type Description
appdetail Contains the name of the Package.

Example Event

powersession

Event indicating the Charging / Discharging. When a device stops charging (removed from Cradle), this event will be generated indicating the duration of the Charge, begining/ ending Charge, and Rate of Charge per hour. Once the device is begins to charge (placed on Cradle), an event will be generate indicating the Discharge of the battery (duration, beginning/ending charge, rate per hour of discharge).

Use "type" field to determine if a "charge" or "discharge" event session.

Field Data Type Description
type String indicates either a CHARGE or DISCHARGE session
startTime Date/Time Start Date/Time of session
endTime Date/Time Ending Date/Time of session
duration long Length, in seconds, of the session
startCharge long Charge value at the beginning of session
endCharge long Charge value at the end of session
ratePerHour double Rate per hour of the charge or discharge
projectedHour long Projected number of hours to discharge or charge the device

Example Event

settingsChange

If any of the Android Settings (USB, Root Access, etc) change from the BOOT of the device, then this event will be sent out.

Example Event

shutdown

Indicates a device has shutdown normally.

support

Event indicates information concerning logs, storage information, device settings, and device information.

Data Points

Each of the events have the following common data points.

Common

Field Data Type Description
time Date The date/time the event was generated.
orgId String The organization ID to which the device belongs.
origin String Indicates "handheld".
originModel String Device model identifier (e.g. TC21, CT60, etc.).
version Integer Support Agent application version number.
event String The event name.
deviceId String The device serial number.
userSettings Map<String, String>, converted to JSON Array Key/value pairs of user application settings. i.e. StoreNumber, User Id, etc.

Device Activity details

Some events contain additional device details. These details include the following points: Battery, Network, GPS (location), ScreenState, Foreground APP, and Additional Details (optional).

Field Data Type Description
foregroundApp String Package / Application that is currently in the foreground when event generated
screenState String Screen ON or OFF
details Hash Map Key / value pairs of different data points. Most likely from other applications.
permissionsAppUsage Boolean 1 or 0 to indicate if the Optiko Agent as permissions to use AppUsage data. If the field does not exist, then device does not support application usage permissions.
activeAdmins Array List List of package names that are currently set as Device Administrator applications. Package name strings separated with a comma (e.g. [“com.airwatch.admin.motorolamx”,“com.google.android.gms”]).
accessPoints Array List List of the network access points nearest to a device; the results of a WiFi scan via the Support Agent application.
airplaneMode Boolean Indicates whether the device currently has airplane mode enabled
cellularState String Indicates the current state of the device's cellular service (i.e., 'CONNECTED' and 'DISCONNECTED')
battery Object Battery information. See Battery for details.
gps Object GPS information. See GPS for details
network Object Network information. See Network for details

Battery

Field Data Type Description
technology String battery tech, ex: Li-ion
connectionState String If charging, how is the battery connected: USB, Wireless, etc
health String The health of the battery, as detected by the OS. Good, Bad, etc.
serialNumber String The Battery serial Number
status String Battery status, charging or discharging
voltage int Battery voltage
temperature double Current battery temperature
charge double Current charge on battery
maxCapacity double Maximum charging capacity of device's battery, which registers as fully-charged (e.g.100, 97, etc.).

BatteryDetail

Field Data Type Description
manufactureDate Date Battery manufacture date.
partNumber String Part number for battery. Prefix is "21-” or “82-” (e.g. "21-xxxxx-01 Rev. X").
backupBatteryVoltage String Backup battery voltage.
ratedCapacity String Rated capacity of the battery.
decommissionStatus String Decommission status of the battery.
baseCumulativeCharge String Cumulative charge using Zebra charging equipment only.
noOfChargeCycle String Number of charge cycles.
totalCumulativeCharge String Cumulative charge using any (Zebra or non-Zebra) charging equipment.
secondsSinceFirstUse String Number of seconds passed since the battery was placed in a charger/terminal for the first time.
presentCapacity String Maximum amount of charge that could be pulled from the battery under the present discharge conditions if the battery is fully charged.
healthPercentage String Battery health indicator in percentage (0 to 100).
timeToEmpty String Remaining time until the device becomes unusable under current discharge conditions. If the returned value is "65535", then timeToEmpty is considered to be unknown.
timeToFull String Time until battery is fully charged under present charging conditions. If the returned value is "65535", then timeToFull is considered to be unknown.

Bluetooth

Field Data Type Description
state String Bluetooth enabled status; "on" or "off".
device Array List Objects consisting of string values for paired devices' deviceName, connectionStatus, macAddress, category, and subCategory.

GPS

GPS Location information

Field Data Type Description
gpsEnabled boolean Is GPS Location enabled
netEnabled boolean Is Network Location enabled
passiveEnabled boolean Is Passive Location enabled
gpsLat String Latitude according to GPS Location
gpsLong String Longitude according to GPS Location
netLat String Latitude according to Network Location
netLong String Longitude according to Network Location
passiveLat String Latitude according to Passive Location
passiveLong String Longitude according to Passive Location

Network

Field Data Type Description
connectionSubType String battery tech, ex: Li-ion
connectType String Type of network connection. Values are "WIFI" and "MOBILE".
connected boolean connected (1) or not connected (0)
ssid String Current SSID
ipAddress String AP Ip Address
linkSpeed int Link Speed
networkId Int Network ID
isRoaming boolean Is the device roaming.
rssi int RSSI value, indicates Signal Strength
hiddenSSID boolean Is the SSID Hidden