Я пытаюсь синхронно использовать 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);