Audio (또는 Earshot for Android)를 사용하여 장치가 범위를 벗어난 후 messageLostHandler가 수 분 동안 실행되지 않는다는 사실을 해결하려고합니다.Google Nest subscriptionWithMessageFoundHandler가 한 번 발생합니까?
나는 몇 초마다 다른 장치로부터 메시지를 받기를 바랬다. 그것은 한 번 발사됩니다. 예상 되나요? 메시지에 의존 할 수 없기 때문에 핸들러가 - 초음파가 범위를 벗어 났을 때 어떻게 알 수 있습니까?
다른 메시지가 들어 오기를 기대하면서 subscriptionWithMessageFoundHandler를받은 후 타이머를 코딩했는데 타이머를 무효화하거나 다시 시작할 수있었습니다. 타이머가 작동하면 x 초가 지나고 다른 장치가 범위를 벗어 났음을 알 수 있습니다. 그런 행운은 없습니다.
UPDATE :
let strategy = GNSStrategy.init(paramsBlock: { (params: GNSStrategyParams!) -> Void in
params.discoveryMediums = .Audio
})
publication = messageMgr.publicationWithMessage(pubMessage, paramsBlock: { (pubParams: GNSPublicationParams!) in
pubParams.strategy = strategy
})
subscription = messageMgr.subscriptionWithMessageFoundHandler({[unowned self] (message: GNSMessage!) -> Void in
self.messageViewController.addMessage(String(data: message.content, encoding:NSUTF8StringEncoding))
// We only seem to get a 1x notification of a message. So this timer is folly.
print("PING") //Only 1x per discovery.
}, messageLostHandler: {[unowned self](message: GNSMessage!) -> Void in
self.messageViewController.removeMessage(String(data: message.content, encoding: NSUTF8StringEncoding))
}, paramsBlock: { (subParams: GNSSubscriptionParams!) -> Void in
subParams.strategy = strategy
})
주의 그 "PING은"단지 인쇄 번 : 여기에 문제의 코드입니다.
질문에 귀하의 코드 일부를 포함시킬 수 있습니까? –
나는 원래의 질문에 위에 추가했습니다. –