Как проверить сетевое соединение в BrightScript

Я пытаюсь определить подключение к Интернету в BrightScript с помощью графа сцены. Если нет Интернета, я хотел показать, что в Интернете отключается экран с ошибкой.

Я проверил документацию Roku, я не нашел там много примеров кода.

Я обнаружил, что мы можем использовать GetInfo().linkStatus для получения статуса сети.

Но я хочу добавить наблюдателя, чтобы получать статус каждый раз при изменении статуса.


person Archana    schedule 14.05.2019    source источник


Ответы (1)


вы можете проверить свой порт сообщений на наличие событий linkStatus в BrightScript и отразить его состояние в сцене SG.

Вот пример:

Добавьте поле в scene.xml, которое будет вашим интерфейсом статуса связи между brs и SG, например

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

Затем в main.brs создайте экземпляр roDeviceInfo (на случай, если его еще нет) и назначьте тот же порт сообщений, который вы уже используете:

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

Включите события статуса ссылки на вашем экземпляре roDeviceInfo

m.deviceInfo.EnableLinkStatusEvent(true)

чтобы иметь возможность получать roDeviceInfoEvent событий при ожидании новых сообщений от вашего roMessagePort.

Каждый раз, когда вы получаете сообщение от вашего порта, проверяйте его тип и присваивайте новое значение 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).

person Rúben Freitas    schedule 15.05.2019
comment
Я проверю это. - person Archana; 15.05.2019