Я портирую рабочий код Swift для Xamarin для моего проекта. Каждый раз, когда я вызываю эту функцию, она терпит неудачу, и диалог выбора аксессуаров не отображается.Xamarin/iOS SharedAccessoryManager.ShowBluetoothAccessoryPicker Fails
EAAccessoryManager.SharedAccessoryManager.ShowBluetoothAccessoryPicker (сказуемое, завершение)
Вот некоторые вещи, которые я подтвердил:
- BT Радио на
- Info.plist имеет Поддерживаемые внешние вспомогательные протоколы
- Пробовал выполнение вызова по резьбе пользовательского интерфейса
- Пробовал звонить ужасно ctly от события нажатия кнопки
- Тот же самый основной код в Swift/Xcode работает отлично
- Убедился, что ARMv7 и ARM64 были выбраны варианты сборки в этой статье: iPad Air - CoreBluetooth[ERROR] Cancelling picker as we couldn't communicate with Bluetooth
Xamarin:
EAAccessoryManager.SharedAccessoryManager.ShowBluetoothAccessoryPicker(null, completion: ((Foundation.NSError error) => {
Console.WriteLine("My callback");
if (error != null) {
Console.WriteLine(String.Format("Error code: {0} Desc: {1}", error.Code, error.DebugDescription));
Console.WriteLine("Failed? " + EABluetoothAccessoryPickerError.Failed.ToString());
Console.WriteLine("Failed? " + Convert.ToInt64(EABluetoothAccessoryPickerError.Failed));
}
}));
Xcode/Swift:
EAAccessoryManager.sharedAccessoryManager().showBluetoothAccessoryPickerWithNameFilter(nil) { (error) -> Void in
if error != nil {
NSLog("Error code: \(error!.code) \(error.debugDescription)")
}
}
Xamarin код д не показывать сборщика и всегда будет терпеть неудачу.
2016-04-05 19:54:02.136 ASGDemo.iOS[6383:2146384] Connect Clicked
2016-04-05 19:54:06.139 ASGDemo.iOS[6383:2146384] BTM: attaching to BTServer
2016-04-05 19:54:09.157 ASGDemo.iOS[6383:2146384] BTM: session attach called back with BT_SESSION_ATTACHED (fffffed0)
2016-04-05 19:54:09.158 ASGDemo.iOS[6383:2146384] BTM: attemping to re-attach in 1 seconds
2016-04-05 19:54:09.242 ASGDemo.iOS[6383:2146384] My callback
2016-04-05 19:54:09.250 ASGDemo.iOS[6383:2146384] Error code: 3 Desc: Error Domain=EABluetoothAccessoryPickerErrorDomain Code=3 "(null)"
2016-04-05 19:54:09.253 ASGDemo.iOS[6383:2146384] Failed? Failed
2016-04-05 19:54:09.254 ASGDemo.iOS[6383:2146384] Failed? 3
Не могли бы вы связать свой Info.plist как с Xamarin, так и с XCode? –
Предполагаю, вы называете это на устройстве? Какое устройство вы используете и что вы используете на нем? В соответствии с этим ответом: http://stackoverflow.com/questions/20402973/ipad-air-corebluetootherror-cancelling-picker-as-we-couldnt-communicate-wit вам нужно построить как для 32, так и для 64-разрядных версий. Поэтому в настройках сборки убедитесь, что выбраны ARMv7 + ARM64. – Cheesebaron
Спасибо за предложение. Ранее я нашел статью, на которую вы ссылались, и оба варианта ARMv7 и ARM64 выбраны в настройках сборки. Извините, что не публиковал это изначально. Я отредактирую свое оригинальное сообщение, чтобы добавить эту информацию.Кроме того, устройства, которые я пробовал. iPad Air 2, версия iOS версии 9.2.1. iPhone 6, работающий под управлением iOS версии 9.3 –