IOS AccessySestOupkit застрял во время сочетанияIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 IOS AccessySestOupkit застрял во время сочетания

Сообщение Anonymous »

В настоящее время я пишу приложение в Swift для установления соединений Bluetooth с низкой энергией (BLE) с устройствами и облегчаю спаривание и конфигурацию.
Процесс спаривания, который я использую >: Отображает респондер, метод ввода инициатора. Возможность извлечь устройства, которые я уже соединил, что имеет решающее значение для моего проекта < /p>
Однако я сталкиваюсь с проблемой во время процесса сочета Соединение ', несмотря на то, что оба устройства успешно соединились (как указано на экране другого устройства), только через некоторое время. /> Я попробовал это с двумя разными iPhone (12 Pro и 13 Pro Max с разными iOS 18 версиями) и несколькими устройствами «пары» (у всех были разные прошивки) < /p>
Здесь я инициализировал AspickerDisplayItem: < /p>

Код: Выделить всё

internal struct MyAccessory
{
private static let serviceUuid: String = "180A"

public static let name: String = "MyDevice"

public static let image: UIImage = UIImage( named: "MyImage" )!

public static let services: CBUUID = CBUUID( string: serviceUuid )

public static let pickerDisplayItem: ASPickerDisplayItem =
{
let descriptor: ASDiscoveryDescriptor = ASDiscoveryDescriptor()

descriptor.bluetoothServiceUUID = services

let pickerDisplayItem = ASPickerDisplayItem(
name: name,
productImage: image,
descriptor: descriptor
)

// For Passkey Entry '.confirmAuthorization' is needed
pickerDisplayItem.setupOptions = [.confirmAuthorization, .finishInApp]

return pickerDisplayItem
}()
}
< /code>
и быстрый образец того, как работает приложение (что аналогично этому примеру, приведенному Apple: < /p>
public class AccessoriesManager
{
private var accessorySession: ASAccessorySession = ASAccessorySession()

init()
{
accessorySession.activate( on: DispatchQueue.main, eventHandler: handleSessionEvent )
}

public func startScan()
{
accessorySession.showPicker( for: [
MyAccessory.pickerDisplayItem
]
)
{ error in
if let error
{
print( "Failed to show picker due to: \( error.localizedDescription )" )
}
}
}

private func handleSessionEvent( event: ASAccessoryEvent )
{
switch event.eventType
{
case .accessoryAdded:
/*
Continue the configuration
*/

break
default:
break
}
}
}
Я ожидаю, что процесс спаривания завершится, как это происходит, когда я выполняю его, не используя аксессуарныйсетупоток (вызывая традиционное меню операционной системы Использование классической обработки Bluetooth).


Подробнее здесь: https://stackoverflow.com/questions/794 ... le-pairing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»