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

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

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

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

【问题讨论】:

    标签: iphone external-accessory


    【解决方案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)和其他 stackoverflow 问题。但是很难找到干净的教程。感谢您的帮助。
    • 这是个好建议,但请注意,不需要将协议添加到 info plist 来检测连接并获取型号、制造商等信息。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-03
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多