Проверьте, подключено ли устройство Microsoft Band

Я работаю с Microsoft Band SDK, как для iOS, так и для Windows Phone. Я заметил, что на iOS я могу проверить, подключено ли носимое устройство к смартфону:

MSBClient* bandClient = [[[MSBClientManager sharedManager]attachedClients]firstObject];

if(bandClient.isDeviceConnected){
   //...
}

Есть ли способ добиться того же результата на Windows Phone? Я получаю bandClient на Windows Phone следующим образом:

IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
    //stuff...
}

Но после подключения, как я могу понять, подключен ли телефон в определенный момент (или не подключен) к телефону? На Windows Phone SDK нет onClientDisconnected() обратный вызов и нет такой функции, как bandClient.isDeviceConnected(),

Есть ли способ проверить, подключен ли Band к смартфону? Это действительно важно: например, после подключения я мог взять свою группу и уйти далеко от смартфона, потеряв соединение.

2 ответа

В Windows нет необходимости в методе "подключен", так как вызов IBandClientManager.ConnectAsync() пытается установить соединение Bluetooth с диапазоном (разрывается только при удалении возвращенного IBandClient). Если соединение не может быть установлено, метод сгенерирует исключение.

Вы можете подписаться на один из датчиков, и если у вас нет значения в течение периода времени, превышающего период обновления датчика, он отключается. Например, если вы подписываетесь на частоту сердечных сокращений, вы должны получать значение каждую секунду. Если он не получен в течение более чем секунды, то он отключен. Для батареи я бы использовал что-то с более длительным интервалом, например, температуру - 30 секунд. Вы упомянули, что вам нужно постоянное соединение. Так что, может быть, вам все равно понадобятся некоторые датчики.

Другие вопросы по тегам