Я добавил ключ Info.plist для фильтрации bluetoothServiceUUID, например, и мой дескриптор определяется следующим образом:< /p>
Код: Выделить всё
ASDiscoveryDescriptor *descriptor1 = [[ASDiscoveryDescriptor alloc] init];
descriptor1.bluetoothServiceUUID = [CBUUID UUIDWithString:serviceUUID]; // Replace with actual UUID
ASPickerDisplayItem *item1 = [[ASPickerDisplayItem alloc] initWithName:@"Item 1"
productImage:[UIImage systemImageNamed:@"person"]
descriptor:descriptor1];
[self.session showPickerForDisplayItems:@[item1] completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"Failed to show picker: %@", error.localizedDescription);
}
}];
Мое устройство Bluetooth НЕ рекламирует свой сервисный UUID в разделе рекламы при сканировании устройства. Я нашел UUID в разделе «Службы» и выбрал доступный собственный UUID службы.
Я попробовал на устройстве, которое напрямую рекламирует свои UUID службы в разделе рекламы, и оно работает отлично без предварительного сопряжения вне приложения. .
Подробнее здесь: https://stackoverflow.com/questions/793 ... ed-in-sett
Мобильная версия