ExternalAccessory InputStream/OutputStreams имеют значение null?

Я пытаюсь синхронно использовать InputStream/OutputStream (как обычные IOStreams) для чтения/записи на определенное устройство Bluetooth. Я знаю, что это возможно, потому что у нас есть код на языке Objective-C, который работает с нашим гаджетом, однако мы работаем со сторонней библиотекой C# и должны заставить ее работать на C#.

Я зашел так далеко:

string protocol = <protocol string>
// Attempt to connect to device...
EASession _session = new EASession (myEAAccessory, protocol);
inStream = _session.InputStream;
outStream = _session.OutputStream;

Я вижу, что _session был выделен в памяти - Xamarin показывает мне, что теперь он имеет ненулевой указатель и тип данных, однако и InputStream, и OutputStream имеют значение null (поэтому я не могу их открыть, так как это вызывает исключение nullref ).

Как сделать, чтобы OutputStream и InputStream не были нулевыми?

(Я пытаюсь прочитать много документов Apple, но все их примеры кода написаны на Objective-C, который я едва понимаю... и операторы Objective-C «управление памятью» не применяются?)

edit Кроме того, я проверил, что myEAAcessory не равен нулю, и это возвращает true:

myEAAcessory .ProtocolStrings.Contains (protocol);

person AK_oz    schedule 20.11.2013    source источник


Ответы (1)


Вам нужно перечислить внешние аксессуары, которые вы собираетесь использовать, в Info.plist.

На сайте Apple есть некоторая документация по этому поводу: http://developer.apple.com/library/ios/#featuredarticles/ExternalAccessoryPT/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009502

Вот скриншот того, как установить это значение в Info.plist: http://screencast.com/t/AYmOWjf8wkL< /а>

(Это отсюда: https://bugzilla.xamarin.com/show_bug.cgi?id=1635#c1)

person Rolf Bjarne Kvinge    schedule 20.11.2013
comment
Спасибо! Это сработало, теперь у меня есть InputStream и OutputStream. :) - person AK_oz; 21.11.2013