Core Bluetooth: узнайте, доступно ли устройство для переподключения

Функция преобразования PHP преобразует ведущие символы и игнорирует остальные. Вы можете сделать что-то подобное в C #, извлекая ведущие цифры с помощью Regex.Match , затем вызывая Int32.Parse , чтобы преобразовать подстроку в int:

    String s = Regex.Match("404, Error", @"^\d+").Value;
    Console.WriteLine(Int32.Parse(s));
    // 404

1
задан ff10 18 January 2019 в 18:41
поделиться

1 ответ

«Устройство доступно?» коробка ссылается на centralManager(_:didConnect:) был вызван. Если вы посмотрите на поле выше, это «Попробуйте подключиться». Если это успешно, то устройство доступно.

Это почти всегда правильный подход. Не спрашивайте "это может быть успешным?" Просто попробуй. Если это работает, это работает.

Если вы действительно хотите знать близлежащие, но не подключенные устройства, то вы можете отсканировать их, если они используют рекламу scanForPeripherals(withServices:options:). Затем вы можете проверить, являются ли какие-либо обнаруженные периферийные устройства именно тем, что вы ищете.

Конечно, устройство может быть рядом, а не реклама. Возможно, он подключен к другому устройству, и в этом случае вы его не видите. Возможно, он подключен к вашему устройству, и в этом случае вам понадобится retrieveConnectedPeripherals, чтобы увидеть его. Это может быть просто не реклама (многие устройства прекращают рекламу через некоторое время). В этом случае вы не сможете увидеть его, не пытаясь подключиться к нему.

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

0
ответ дан Rob Napier 18 January 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: