我试图同步使用InputStream / OutputStream(像普通的IOStreams一样)来读/写特定的蓝牙设备。我知道可以这样做,因为我们有一些适用于我们小工具的客观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不为空?
(我正在尝试阅读很多苹果文档,但他们的代码示例都在Objective-C中,我几乎不理解......而Objective-C“内存管理”语句不适用?)< / p>
编辑另外,我检查过myEAAcessory不为null,返回true:
myEAAcessory .ProtocolStrings.Contains (protocol);
答案 0 :(得分:1)
您需要列出您将在Info.plist中使用的外部配件。
苹果网站上有一些关于此的文档: 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)