Event Information
The Support Application generates different events, with each event containing specific data points. Some data points are common to all events.
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.
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
This 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:
User is in Launcher, logs in.
User opens an application A (calculator, or any other app). Uses the app for at least a few seconds.
User goes back to Launcher. The agent should generate an appusage event for the application that was previously opened.
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.
appUsage_history
This event provides application usage for a time period range.
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'
}audioChange
This event indicates the device audio volume has changed. The data is reported within the details.message column.
Event introduced in Support Application 5.20.26.
batteryCycle
This event indicates the battery has cycled.
A battery cycle is calculated during power change. When the battery level goes up, the incremental 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.bluetoothEvent
This event indicate a change in Bluetooth state or pairing status.
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".
bluetooth_le
This event shows BLE information for connected Bluetooth Low Energy devices.
details.message
String
Contains a JSON representation of data from the BLE device.
boot
This event indicates the device just booted up. The event will start tracking the Settings.
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.
cellularChange
This event tracks changes in information or state of the device's cellular service.
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
exception
This event indicates an Exception occurred within the Optiko Agent.
stackTrace
String
The stack trace of the error
heartbeat
This event is fired to let the server know that this device is still active. The event occurs every 15-30 minutes (configurable).
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
installedApplications
This event gives a list of installed user applications. The event is generated under these conditions:
On initial start of application after installation.
On device boot and installAppsOnBoot is true.
Power connection change, device is discharging, and installAppsUncradled is true.
Starting in Support Agent version 5.20.x, system level applications will be reported within the Installed System Applications event, while user level applications will be reported within the installedapplications event.
appdetails
Array List
Array of objects contain "label", "name", "type" and "ver" of packages installed.
installedSystemApplications
This event gives a list of installed system applications. The event is generated under these conditions:
On initial start of application after installation.
On device boot and installAppsOnBoot is true and reportSystemApps is true.
Power connection change, device is discharging, and installAppsUncradled is true and reportSystemApps is true.
Starting in Support Agent version 5.20.x, system level applications will be reported within the Installed System Applications event, while user level applications will be reported within the Installed Applications event.
appdetails
Array List
Array of objects contain "label", "name", "type" and "ver" of packages installed.
licenseCheck
This event indicates a warning or error with a device license.
location
This event is triggered every time the FINDME feature is used. Pinging the device can also be from another device via the device finder application.
Triggers:
Portal:
Request Location
Device action → Ping device
Device Finder Application


Configuration Dependencies:
findMeAutoEnabled
Boolean
Enable/disable FindMe feature
null
findMePlayMedia
Boolean
Whether to play audio alert
null
findMePlayInternalMedia
Boolean
Use internal audio file
null
findMeTimeToPlay
Int
Duration to play audio (ms)
null
findMeTimeToPlayShort
Int
Short duration audio play (ms)
null
findMeExternalMedia
String
Path to external audio file
null
findMeBatteryLevelWarning
Int
Battery level for warnings
null
findMeAlarmVolume
Int
Volume for FindMe alarm
null
findMeLowBatteryAlarmVolume
Int
Volume for low battery alarm
null
findMeLowBatteryAlarmLoopMinutes
Int
Low battery alarm repeat interval
null
findMeLowBatteryExternalMedia
String
External audio for low battery
null
findMeIgnoreScreenState
Boolean
Ignore screen on/off state
null
findMeMovementThresholdSeconds
Int
Motion detection threshold
null
findMeStopAlertOnMotion
Boolean
Stop alert if device moves
null
Event Details:
GPS Information (GPSInformation)
gpsEnabled
Boolean
GPS provider enabled status
gpsLat
String
GPS latitude
gpsLong
String
GPS longitude
gpsAccuracy
Float
GPS accuracy in meters
netEnabled
Boolean
Network provider enabled status
netLat
String
Network-based latitude
netLong
String
Network-based longitude
netAccuracy
Float
Network accuracy in meters
passiveEnabled
Boolean
Passive provider enabled status
passiveLat
String
Passive provider latitude
passiveLong
String
Passive provider longitude
passiveAccuracy
Float
Passive provider accuracy
Access Points List (List<AccessPoint>)
Each AccessPoint contains:
mac
String
BSSID (MAC address) of access point
ssid
String
Network name (SSID)
strength
Int
Signal strength in dBm (RSSI)
bars
Int
Signal bars (0-5)
channel
Int
WiFi channel number
frequency
Int
Frequency in MHz (2.4GHz/5GHz)
frequencyBand
Double
Band classification
signalNoiseRatio
Double
Signal-to-noise ratio
isConnected
Boolean
Whether the device is connected to this AP
distance
Double
Estimated distance in meters
Additional Context and details
battery
SupportEventHelper.getBattery()
Standard battery telemetry
network
SupportEventHelper.getWifi()
Current WiFi connection details
foregroundApp
SupportEventHelper.getForegroundApp()
Currently active app
screenState
SupportEventHelper.getScreenState()
Screen on/off status
userSettings
SupportEventHelper.getUserSettings()
User preference data
lowBattery
This event indicates that battery is getting low. System typically invokes when battery level gets below 15%.
lowMemory
This event indicates that memory is getting low. onLowMemory at application level.
lowStorage
This event is generated when one of four locations are over 80% used. This usage is checked on device Boot, when an application is installed or removed, on request (via SilentInitActivity), and on a timer.
missingPermissions
This event indicates that the Support Application is missing permissions. The event is introduced in version 5.14.2.
details.message
String
An array list of the missing permissions.
networkEvent
This event tracks information of current network connection.
Link Properties Information
This event 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.
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
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.
Wi-Fi Information
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.
wifiStandard
String
Returns the supported WiFi standard of the access point.
ssid
String
Returns the service set identifier (SSID) of the current 802.11 network.
channel
Integer
Returns the corresponding WiFi channel of the device connection.
band
String
Returns the frequency band of the WiFi connection.
linkSpeed
Integer
Returns the current link speed in Mbps.
maxSupportedTxLinkSpeed
Integer
Returns the maximum supported transmit link speed of the access point.
maxSupportedRxLinkSpeed
Integer
Returns the maximum supported receive link speed of the access point.
networkId
Integer
Each configured network has a unique small integer ID, used to identify the network when performing operations on the supplicant.
isRoaming
Boolean
Indicates whether the device is currently roaming on this network. When true, it suggests that the device is connected to the same SSID, but moving through different access points, i.e. BSSIDs.
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.
networkStats
This event provides detailed per-application network usage tracking. The event tracks how much data (internet/Wi-Fi) each app on the device uses over time. It's like a detailed phone bill that shows which apps are using the most data.
The networkStats sampling works in two steps:
Collecting: Every hour (or configured interval), it records how much data each app used
Reporting: Every few hours, it bundles all that information and sends it to the server
What Information Gets Sent:
Summary Information (Overall Totals)
Total Upload
All data sent from device
"15.1 MB uploaded"
Total Download
All data received by device
"229.1 MB downloaded"
Time Period
When this data was collected
"Jan 18, 10:00 AM - 2:00 PM"
Time Zone
Local time and UTC time
Both local and UTC timestamps
Interval
How often data was sampled
"Every 2 hours"
Per-App Breakdown
For every app that used data, the report shows:
App Name
The app's display name
"Chrome Browser"
Package Name
Technical app identifier
"com.android.chrome"
Wi-Fi Upload
Data sent over Wi-Fi
"512 KB"
Wi-Fi Download
Data received over Wi-Fi
"2 MB"
Cellular Upload
Data sent over cellular/mobile
"0 KB"
Cellular Download
Data received over cellular/mobile
"0 KB"
Time Period
When this app used this data
"Jan 18, 10:00 - 11:00"
Special Entries You Might See
"System"
Built-in Android system processes
"RemovedApp"
Apps that were uninstalled but had data usage
"Tethering"
Data used when device shares internet (hotspot)
Configuration Dependency
networkStats is disabled by default and must be turned on via config.
Required Settings
To enable the feature:
networkStatsEnabled
Must be "true"
YES - Feature won't work without this
Optional Settings (Fine-Tuning):
networkStatsInterval
How often to collect data snapshots
Every 1 hour
1-24 hours
networkStatsUploadInterval
How often to send reports
Every 4 hours
1-24 hours
Configuration Examples
Example 1: Standard Monitoring networkStatsEnabled = "true" networkStatsInterval = "1" (collect every hour) networkStatsUploadInterval = "4" (report every 4 hours)
Result: Collects 4 snapshots, then sends one report with all 4
Example 2: Frequent Reporting networkStatsEnabled = "true" networkStatsInterval = "2" (collect every 2 hours) networkStatsUploadInterval = "6" (report every 6 hours)
Result: Collects 3 snapshots, then sends one report with all 3
Example 3: Conservative Monitoring networkStatsEnabled = "true" networkStatsInterval = "6" (collect every 6 hours) networkStatsUploadInterval = "24" (report once per day)
networkSession
This event monitors your WiFi connection quality over time, acting like a 'report card' for each network you connect to. It tracks signal strength, monitors connection duration, and generates a summary whenever your connection changes. Specifically, this event is triggered by a change in SSID or BSSID, occurring whenever a Connection Change event is detected.
Triggers:
This report is automatically created when:
WiFi changes - You connect/disconnect or switch networks
Connection changes - Your internet switches between WiFi and cellular
Power changes - You plug in or unplug your device
Settings needed:
This feature works automatically - no settings needed to turn on.
Event Information:
Wi-Fi Connection Summary
Network Name
"Office WiFi" or "Home Network"
Access Point ID
Unique ID for the WiFi router
Start Time
"Jan 18, 10:00 AM"
End Time
"Jan 18, 2:30 PM"
Duration
"4 hours 30 minutes"
Wi-Fi Signal Strength
Weakest Signal
Worst connection during session
Strongest Signal
Best connection during session
Average Signal
Typical connection quality
Signal strength tip: Measured in "dBm" (like bars on your phone)
30 dBm = Excellent
50 dBm = Good
70 dBm = Fair
80 dBm = Poor
Device Status Snapshot
Current device information included in the report:
Battery
Level and charging status
Wi-Fi
Current network connection
Location
GPS coordinates (if enabled)
Active App
App currently in use
Screen
On or off
Settings
Device preferences
How it works:
Tracking
Device measures WiFi signal while you're connected
Trigger
Network, connection, or power state changes
Summary
Creates report with signal statistics
Cleanup
Deletes old measurements to save space
Example scenario:
Morning at the office:
9:00 AM
Connect to "Office WiFi" near router
-40 dBm (Strong)
11:00 AM
Move to meeting room
-70 dBm (Weak)
12:00 PM
Plug in device to charge
Report Created
Report shows:
Network: "Office WiFi"
Duration: 3 hours (9 AM - 12 PM)
Best signal: -40 dBm
Worst signal: -70 dBm
Average signal: -55 dBm
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
packageAdd
This event indicates the package / application has been added to the system.
appdetail
contains package Label, Name and the Version
packageRemove
This event indicates the package / application has been removed from the system.
appdetail
Contains the name of the Package.
powerSession
This event indicates Charging / Discharging. When a device stops charging (i.e., is removed from Cradle), this event will be generated to indicate the duration of the Charge, the beginning/ ending Charge levels, and the Rate of Charge per hour. Once the device begins charging (i.e., is placed on Cradle), an event will be generated to indicate the Discharge of the battery (duration, beginning/ending charge, rate per hour of discharge).
Use "type" field to determine whether it is a "charge" or "discharge" event session.
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
roamingEvent
These are events generated when a connected device moves from one access point (BSSID) to another access point (BSSID). A change in a connected access point is commonly due to low RSSI level and is handled by a Wi-Fi network controller.
settingsChanged
If any of the Android Settings (USB, Root Access, etc) change from the BOOT of the device, then this event will be sent out.
shutdown
This event indicates a device has shut down normally.
storage
This event contains information about the device storage levels. The event can be generated upon request from Portal. The event is generated on Device boot and after every 20th Heartbeat event.
support
This event indicates information concerning logs, storage information, device settings, and device information.
Data Points
Each of the events has the following common data points.
Common
time
Date
The date/time the event was generated.
orgId
String
The organization ID to which the device belongs.
origin
String
Indicates "handheld".
originIP
String
The IP address of the network within which the event originated.
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).
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
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.).
Battery Detail
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
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
gpsEnabled
boolean
For device models that have GPS radios, true means that the Support Agent is able to get device location coordinates via satellite.
netEnabled
boolean
true means that the Support Agent is able to get device location coordinates from the network provider based on availability of cell tower and/or WiFi access points.
passiveEnabled
boolean
true means that the Support Agent is able to get device location coordinates via other applications' requests. Support Agent does not call for location updates itself, but instead uses location results generated when other applications request it.
gpsLat
String
Latitude according to satellite when "gpsEnabled": true.
gpsLong
String
Longitude according to satellite when "gpsEnabled": true.
netLat
String
Latitude according to network provider when "netEnabled": true.
netLong
String
Longitude according to network provider when "netEnabled": true.
passiveLat
String
Latitude according to other applications when "passiveEnabled": true.
passiveLong
String
Longitude according to other applications when "passiveEnabled": true.
Network
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
Last updated