MonoTouch:用于外部附件的 ESSession

Posted

技术标签:

【中文标题】MonoTouch:用于外部附件的 ESSession【英文标题】:MonoTouch: ESSession for external accessories 【发布时间】:2012-07-10 18:41:59 【问题描述】:

我正在将代码从 Objective C 移植到 MonoTouch 以使用外部附件。这是超级基本的编码,但是当我创建 EASession 并尝试使用 InputStream 或 OutputStream 时,它们都是 NULL。我在 Objective-C 中使用过它,所以我知道这不应该发生。

我能够反复连接/断开设备并检测它。现在,由于这个空问题,我似乎无法从设备中读取数据。以下是我的编码:

session = new EASession(acc, "com.idtechproducts.reader");

session.OutputStream.Delegate = streamDel; // 说 OutputStream 为 null 时崩溃

session.OutputStream.Schedule (NSRunLoop.Current , "NSDefaultRunLoopMode");

session.OutputStream.Open();

【问题讨论】:

可能是“accessory”参数错误,还是协议字符串? 我知道 acc 是正确的,并且很确定我复制了协议,但我可以轻松地从 acc 本身获取它。我会稍微测试一下并更新。不过这很奇怪,我找不到在任何地方使用外部配件进行单点触控的单个示例 【参考方案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

【讨论】:

上周做到了。它帮助解决了错误,但仍然无法获取数据。谢谢! 我最终只是调用了我构建的一个 Objective-C 类 Anthony,您能告诉我们您是如何解决问题的吗?通过任何更改,您是否在 Monotouch 中实现了 idtechproducts 的 iSmart SDK? (智能卡读卡器)。我正在努力使用 .a 来编译它;他给出了缺少 ARM7 方法的错误。 添加协议没有帮助

以上是关于MonoTouch:用于外部附件的 ESSession的主要内容,如果未能解决你的问题,请参考以下文章

MonoTouch - 无法在包中加载 NIB:“NSBundle”

iOS 外部附件框架:如何获取特定 MFI 设备的协议字符串

用于 Mono、MonoTouch 和 ASP.NET MVC 的 ORM

Monotouch 或 Titanium 用于在 iPhone 上进行快速应用程序开发?

外部附件 api 出错,如何使用外部附件

外部附件命令协议