【问题标题】:How to check for network connection in BrightScript如何在 BrightScript 中检查网络连接
【发布时间】:2019-05-15 19:25:28
【问题描述】:

我正在尝试使用场景图识别 BrightScript 中的互联网连接。如果没有互联网,我想在互联网上显示一些错误屏幕。

我查看了 Roku 的文档,在那里我没有找到太多的编码示例。

我发现我们可以使用GetInfo().linkStatus来获取网络状态

但我想添加观察者以在每次状态发生变化时获取状态。

【问题讨论】:

    标签: roku brightscript


    【解决方案1】:

    您可以检查 BrightScript 上的 linkStatus 事件的消息端口,并将其状态反映到您的 SG 场景中。

    这是一个例子:

    scene.xml中添加一个字段作为你的brs和SG的链接状态界面,比如

    <field id="offline" type="boolean" value="false" alwaysNotify="true" onChange="onOfflineChanged" />
    

    然后,在 ma​​in.brs 中,创建一个 roDeviceInfo 实例(如果还没有的话)并分配您已经在使用的相同消息端口:

    m.deviceInfo = CreateObject("roDeviceInfo")
    m.deviceInfo.setMessagePort(m.port)
    

    在您的 roDeviceInfo 实例上启用链接状态事件

    m.deviceInfo.EnableLinkStatusEvent(true)
    

    在等待来自您的 roMessagePort 的新消息时能够接收 roDeviceInfoEvent 事件。

    每次从端口收到消息时,检查其类型并将新的 linkStatus 值分配给第一步创建的场景字段

    if msgType = "roDeviceInfoEvent" and msg.isStatusMessage() then scene.offline = not msg.getInfo().linkStatus
    

    回调应该在scene.brs文件中声明

    function onOfflineChanged()
        if(m.top.offline)
           ' your code here
        end if
    end function
    

    就是这样。

    为了更加正确,您应该在应用启动后立即检查其状态。你可以这样做

    scene.offline = not m.deviceInfo.GetLinkStatus()
    

    在进入 while(true) 循环之前。

    【讨论】:

    • 我会检查这个。
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多