外接设备报告无协议

Posted

技术标签:

【中文标题】外接设备报告无协议【英文标题】:External Device reports no Protocol 【发布时间】:2012-12-19 00:52:39 【问题描述】:

我有一个我一直在开发的应用程序,现在我想通过扩展坞连接器与外部设备集成一些交互。我使用的设备(iDive 300)符合 Made For iPod 程序。我已经基于 EADemo 代码编写了一个单独的简单应用程序来收集有关设备的信息。然而,当我运行这个应用程序时,iDive 没有报告名称、序列号、固件等,并且还说没有找到任何协议。我知道这个简单的应用程序可以正常工作,因为我已连接到其他几个外部设备,并且为每个设备填充了名称、序列号等。

另一件奇怪的事情是 iDive 在插入我的 iPhone 4 时似乎可以正常工作(即它会增加音量并通过设备上的按钮播放在我的 iPhone 上找到的歌曲和视频)。这不应该意味着这个设备与 iPhone 通信有一些协议吗?如果我不知道协议,我是否可以从此设备读取数据(例如,在按下“播放”、“菜单”或其他按钮时捕获)?

我对外部附件框架完全陌生,感谢任何帮助!

【问题讨论】:

【参考方案1】:

您应该对与 iDive 关联的应用进行尸检。在它的info.plist中,应该有一个key:

UISupportedExternalAccessoryProtocols

其值为一个数组(See this for the formal definition),其中包含一个字符串,其值类似于设备协议的反向域名。

你应该编辑你的 Info.plist,添加一个数组的键('Supported external accessory protocols' 简单的英文),把协议作为它的项目。

【讨论】:

您好,我在为 Mfi 注册设备开发应用程序时有一个问题,我在哪里可以获得将其输入 plist 的协议?我有 Mfi 个人资料凭据。 如果您没有,只需选择一个未使用的字符串,就像您选择 App Id 一样。如果您正在为现有设备开发应用程序,请向制造商询问其协议字符串。记住无论你做什么,应用程序中的字符串和设备中的字符串必须始终匹配。 好的,谢谢。我想知道该协议是否可以在给定的 mfi 门户中使用。但我没有得到任何。因此,设备制造商可能会提供此功能。另外,由于我是初学者,您能否帮助我为外部附件演示提供有用的教程链接。我已经浏览了开发者网站(EAdemo)和其他 *** 问题。但是很难找到干净的教程。感谢您的帮助。 这是个好建议,但请注意,不需要将协议添加到 info plist 来检测连接并获取型号、制造商等信息。【参考方案2】:

无法保证配件确实使用了 EA。它可以使用 Apple 定义的协议进行通信。

仅当您想使用自己的专有协议进行通信时才需要 EA。

查看 Apple 的 EADemo 示例...如果它没有出现在演示应用程序中,则不是 EA。

【讨论】:

以上是关于外接设备报告无协议的主要内容,如果未能解决你的问题,请参考以下文章

ONVIF协议只能用在局域网?设备提供的web服务、RTSP流地址都是自己的局域网IP地址,手机外网怎么调用?

OSI各层对应设备及其协议

巴塞尔协议

网络协议分析课程设计:基于TCP协议网上聊天程序

局域网设备发现之Bonjour协议

网络层ICMP协议