CBCentralManager ScanForPeripherals с пустым именем CBPeripheral - PullRequest
0 голосов
/ 03 июня 2019

Мне нужно решить эту проблему с моим приложением.Я пытаюсь отсканировать периферийные устройства (устройства Bluetooth), используя CBCentralManager из CoreBluetooth в Xamarin.iOS, но когда обнаруживается периферийное устройство, у него иногда появляется пустое имя, когда я делаю то же самое в настройках iOS, то у него есть имя.Я не ищу конкретный UUID.

CBCentralManager  manager = new CBCentralManager(CoreFoundation.DispatchQueue.MainQueue);

manager.DiscoveredPeripheral += (sender, e) =>
{
    if (e.Peripheral != null)
    {
        Debug.WriteLine($"DiscoveredPeripheral: {e.Peripheral.Name} - {e.Peripheral.Identifier} - {e.AdvertisementData}");

        PeripheralsList.Add(e.Peripheral);
        CustomDeviceDiscoveredAction(this, new CustomBTEDevice
        {
            DeviceName = e.Peripheral.Name,
            DeviceAddress = e.Peripheral.Identifier.AsString(),
            DeviceGuid = Guid.Parse(e.Peripheral.Identifier.AsString())
        });
    }
};
manager.ScanForPeripherals(null, new PeripheralScanningOptions
{
    AllowDuplicatesKey = false,
});

1 Ответ

0 голосов
/ 07 июня 2019

Проверьте свойство LocalName в пакете данных рекламы. Кроме того, мои предложения, не полагайтесь на имя устройства, лучше полагаться на данные в данных рекламы

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