SystemEvents Interface
Estimated reading time: 5 minutes
应用程序可以通过SystemEvents
接口接收系统事件的通知 。 下表显示了受支持的事件类型。
Event type | Description | SystemEventsTypeId | SystemEventInfo |
---|---|---|---|
Power Status | Inform when the status of power is changed. (i.e. display is turned on or turned off.) |
powerStatusChanged |
PowerStatusInfo |
Network Interface | Inform when the status of network interface (eth/wlan) is changed. (i.e. network interface is disabled or enabled.) |
networkInterfaceChanged |
NetworkInterfaceInfo |
Network Connection | Inform when the status of network connection (eth/wlan) is changed. (i.e. network connection is established or disconnected.) |
networkStatusChanged |
NetworkStatusInfo |
External Input Status | Inform when the status of external input (HDMI only) is changed. (i.e. external input is connected or disconnected with the other device or input signal is detected or lost.) |
inputsStatusChanged |
InputsStatusInfo |
Volume Status | Inform when the volume or mute status is changed. | volumeInfoChanged |
VolumeInfo |
Request of Input Source Change[1] | Notify when an input source change is requested. This notification will be sent before changing the input source. HDMI is the only input source supported. | beforeInputSrcChange |
InputSrcInfo |
Completion of Input Source Change[1] | Notify when an input source is changed. This notification will be sent after changing the input source. HDMI is the only input source supported. | inputSrcChanged |
InputSrcInfo |
[1] Supported only on WebAppRuntime v1.2.65.11.
这个 SystemEvents
接口提供将系统事件的更改(如上表所示)通知应用程序的方法。 应用程序可以通过接收系统事件状态来控制它们的状态。 (i.e. 应用程序只能在检测到外部输入事件时添加抽取的对象标记。)
接口: SystemEvent
属性
SystemEventsTypeId systemEventTypeId
SystemEventInfo eventMessage
方法
void addListener(SystemEventsTypeId type, SystemEventsCallback callback)
void removeListener(SystemEventsTypeId type, SystemEventsCallback callback)
Enum: SystemEventsTypeId
它表示系统事件类型。
powerStatusChanged
通知RC开启和关闭networkInterfaceChanged
通知网络接口(wan/lan)已启用或禁用networkStatusChanged
通知网络连接建立,IP状态改变inputsStatusChanged
更改外部输入状态(仅支持HDMI)volumeInfoChanged
通知音量和静音状态发生变化beforeInputSrcChange
请求更改输入源时通知。HDMI是唯一支持的输入源。inputSrcChanged
更改输入源时通知。HDMI是唯一支持的输入源。
接口: SystemEventInfo
此接口显示事件何时触发。
属性
DOMTimeStamp timeStamp
接口: PowerStatusInfo
这个接口继承 SystemEventInfo
表示功率信息。
属性
PowerStatusType
status
Enum: PowerStatusType
它表示RC打开和关闭事件类型。
active
这个值表示RC 开启standby
这个值表示RC 关闭
接口: NetworkInterfaceInfo
这个接口继承 SystemEventInfo
表示网络接口(wlan和有线)信息。
属性
NetworkInterfaceType
netif
此属性显示启用或禁用的网络接口boolean enabled
此属性显示网络接口已启用或禁用。true
如果启用网络接口。false
如果网络接口被禁用。
Enum: NetworkInterfaceType
它表示网络接口类型。
wlan0
eth0
接口: NetworkStatusInfo
这个接口继承 SystemEventInfo
表示网络连接状态(wlan和有线)。
属性
NetworkConnectionStatus
connectionInfo
此属性显示网络连接信息(IP地址、网络掩码等)。boolean enabled
此属性显示网络连接是否已建立。true
如果网络已经建立false
如果网络断开
接口: NetworkConnectionStatus
这个接口继承 SystemEventInfo
并表示网络连接的详细状态。
属性
NetworkInterfaceType netif
DOMString errorDetail
DOMString hwAddress
DOMString ipAddrV4
DOMString ipAddrV6
DOMString netmask
DOMString gateway
Array dns
接口: InputsStatusInfo
这个接口继承 SystemEventInfo
并表示外部输入(HDMI)状态。
属性
DOMString uri
此属性显示更改状态的外部输入。DOMString title
这个属性显示了外部输入的名称(例如,HDMI 1, HDMI 2,…)boolean connection
此属性显示HDMI设备连接状态。true
如果HDMI设备已连接。false
如果HDMI设备断开。
boolean status
此属性显示HDMI信号状态。true
如果检测到HDMI输入信号。false
如果HDMI输入信号丢失。
接口: VolumeInfo
这个接口继承 SystemEventInfo
表示音量的状态。
属性
Numeric volume
此属性显示音量值。DOMString title
这个属性显示了外部输入的名称(例如,HDMI 1, HDMI 2,…)boolean connection
此属性显示HDMI设备连接状态。true
如果HDMI设备已连接。false
如果HDMI设备断开。
boolean mute
此属性显示HDMI信号状态。true
如果音量变小。false
如果取消静音。
接口: InputSrcInfo
这个接口继承 SystemEventInfo
表示输入源的相关信息 beforeInputSrcChange
和 inputSrcChanged
.
属性
DOMString uri
此属性显示外部输入源的uri。DOMString title
此属性显示外部输入名称(例如,HDMI 1, HDMI 2,…)DOMString dispNum
此属性显示外部输入的序列号(例如“HDMI 1”:“1”)
方法
void preventDefault()
当HTML5应用程序调用这个方法时,事件的默认动作将不会被触发。 默认操作如下:- 当HTML5应用程序包含
HDMI Video
对象标签,HTML5应用程序中的对象标签处理并显示请求的输入源。 这意味着HTML5应用程序始终处于前台。 - 当HTML5应用程序不包含
HDMI Video
对象标签,显示外部输入源的屏幕显示在前台,HTML5应用程序显示在后台。
- 当HTML5应用程序包含
举例说明
定义和注册回调
// define callback to handle Power Status events
function onPowerStatusChanged(event){
console.log("systemEventTypeId = " + event.systemEventTypeId);
console.log("eventMessage.timestamp = " + event.eventMessage.timeStamp);
console.log("eventMessage.status = " + event.eventMessage.status);
}
// define callback to handle Network Interface events
function onNetworkInterfaceChanged(event){
console.log("systemEventTypeId = " + event.systemEventTypeId);
console.log("eventMessage.timestamp = " + event.eventMessage.timeStamp);
console.log("eventMessage.netif = " + event.eventMessage.netif);
console.log("eventMessage.enabled = " + event.eventMessage.enabled);
}
// define callback to handle Network Status events
function onNetworkStatusChanged(event){
console.log("systemEventTypeId = " + event.systemEventTypeId);
console.log("eventMessage.timestamp = " + event.eventMessage.timeStamp);
console.log("eventMessage.connectionInfo.netif = " + event.eventMessage.connectionInfo.netif);
console.log("eventMessage.connectionInfo.errorDetail = " + event.eventMessage.connectionInfo.errorDetail);
console.log("eventMessage.connectionInfo.hwAddress = " + event.eventMessage.connectionInfo.hwAddress);
console.log("eventMessage.connectionInfo.ipAddrV4 = " + event.eventMessage.connectionInfo.ipAddrV4);
console.log("eventMessage.connectionInfo.ipAddrV6 = " + event.eventMessage.connectionInfo.ipAddrV6);
console.log("eventMessage.connectionInfo.netmask = " + event.eventMessage.connectionInfo.netmask);
console.log("eventMessage.connectionInfo.gateway = " + event.eventMessage.connectionInfo.gateway);
console.log("eventMessage.connectionInfo.dns = " + event.eventMessage.connectionInfo.dns);
console.log("eventMessage.enabled = " + event.eventMessage.enabled);
}
// define callback to handle External Input Status events
function onInputsStatusChanged(event){
console.log("systemEventTypeId = " + event.systemEventTypeId);
console.log("eventMessage.timestamp = " + event.eventMessage.timeStamp);
console.log("eventMessage.uri = " + event.eventMessage.uri);
console.log("eventMessage.title = " + event.eventMessage.title);
console.log("eventMessage.connection = " + event.eventMessage.connection);
console.log("eventMessage.status = " + event.eventMessage.status);
}
// define callback to handle Volume Status events
function onVolumeInfoChanged(event){
console.log("systemEventTypeId = " + event.systemEventTypeId);
console.log("eventMessage.timestamp = " + event.eventMessage.timeStamp);
console.log("eventMessage.volume = " + event.eventMessage.volume);
console.log("eventMessage.mute = " + event.eventMessage.mute);
}
// define callback to handle request of Input Source Change
function onBeforeInputSrcChange(event){
console.log("systemEventTypeId = " + event.systemEventTypeId);
console.log("eventMessage.url = " + event.eventMessage.url);
console.log("eventMessage.title = " + event.eventMessage.title);
console.log("eventMessage.dispNum = " + event.eventMessage.dispNum);
}
// define callback to handle completion of Input Source Change
function onInputSrcChanged(event){
console.log("systemEventTypeId = " + event.systemEventTypeId);
console.log("eventMessage.url = " + event.eventMessage.url);
console.log("eventMessage.title = " + event.eventMessage.title);
console.log("eventMessage.dispNum = " + event.eventMessage.dispNum);
}
// register callbacks
sony.tv.systemevents.addListener('powerStatusChanged', onPowerStatusChanged);
sony.tv.systemevents.addListener('networkInterfaceChanged', onNetworkInterfaceChanged);
sony.tv.systemevents.addListener('networkStatusChanged', onNetworkStatusChanged);
sony.tv.systemevents.addListener('inputsStatusChanged', onInputsStatusChanged);
sony.tv.systemevents.addListener('volumeInfoChanged', onVolumeInfoChanged);
sony.tv.systemevents.addListener('beforeInputSrcChange', onBeforeInputSrcChange);
sony.tv.systemevents.addListener('inputSrcChanged', onInputSrcChanged);
// unregister callbacks
sony.tv.systemevents.removeListener('powerStatusChanged', onPowerStatusChanged);
sony.tv.systemevents.removeListener('networkInterfaceChanged', onNetworkInterfaceChanged);
sony.tv.systemevents.removeListener('networkStatusChanged', onNetworkStatusChanged);
sony.tv.systemevents.removeListener('inputsStatusChanged', onInputsStatusChanged);
sony.tv.systemevents.removeListener('volumeInfoChanged', onVolumeInfoChanged);
sony.tv.systemevents.removeListener('beforeInputSrcChange', onBeforeInputSrcChange);
sony.tv.systemevents.removeListener('inputSrcChanged', onInputSrcChanged);
Last modified: 10 Apr 2019