【问题标题】:Can an iPhone application running in the background transfer data via USB interface?后台运行的 iPhone 应用程序可以通过 USB 接口传输数据吗?
【发布时间】:2010-11-23 22:26:02
【问题描述】:

有 2 个 iPhone 应用程序。一个应用程序在前台运行,另一个在后台运行。有没有办法让后台应用程序通过 USB 发送数据而不进入前台?理想情况下,我们希望将前台应用程序保持在前台,而后台应用程序处理一些数据。处理完数据后,它将通知前台应用程序数据已被处理。

【问题讨论】:

  • 我把它放在 cmets 中,因为我真的很无能,但是:为什么不在主应用程序中将后台进程作为后台线程运行呢?我很确定 iPhone 应用程序不会在后台运行,这意味着无论如何这可能是您唯一的选择。
  • iPhone 应用程序可以在后台运行,但这完全没有必要。后台线程也是不必要的。只需使用异步 I/O!

标签: ios iphone background usb transfer


【解决方案1】:

不,它不能。如果不使用私有框架,它甚至无法做到这一点,除非您在 Made for iPhone 程序中。如果您是,那么您的组织将根据向您提供的文档了解您可以访问和不能访问的内容、访问时间和方式。

如果您参加了 Made for iPhone 计划,并且不清楚您可以访问哪些内容以及何时访问,请联系您组织中负责此计划的 Apple 技术联系人的人员,他们将能够为您提供详情。

【讨论】:

  • 非常感谢您的快速回复。
【解决方案2】:

如果任务在应用处于前台时启动,并且您调用了相应的 beginBackgroundTask/endBackgroundTask 方法,您应该能够在应用处于后台后继续运行它。

请注意,对 USB 的访问受到限制(请参阅 jer 的回答),并且没有官方认可的方式可以在同一设备上的不同应用程序之间进行通信。此外,您一次只能在 App Store 中购买/下载一个应用程序,而且我看不到 Apple 批准需要您下载第二个应用程序才能运行的应用程序。所以你可能有更大的问题需要先解决。

【讨论】:

  • 非常感谢您的快速回复。如果对 USB 的访问受到限制,是否有可用于传输数据的蓝牙 API?
  • 澄清一下,数据传输到的设备是非iOS设备。
【解决方案3】:

如果您告诉我们您真正想要实现的目标,这将有助于显着。例如,“我希望用户手机上的 MyApp 与用户计算机上的 MyApp 通信”。

在手机和计算机之间发送数据的最简单方法是要求它们都在同一个 Wi-Fi 网络上。一些 iPhone 应用程序包含一个 Web 服务器(这是 OS 3.2 之前“文件共享”的最简单方法),还有更多 iPhone 应用程序连接到运行服务器软件的计算机。

您的其他选择,或多或少:

  • 对 GameKit 的蓝牙端进行逆向工程并在计算机端重新实现。我不知道有谁做过这件事。粗略地说,我认为它是 IP over Bluetooth PAN 加上某种蓝牙服务发现。
  • 音频输入/输出,例如耳机插孔或基座连接器上的某些引脚。我不完全确定麦克风侧是如何工作的(当我检查时,碳麦克风的电阻有点高),但你可能会很幸运并找到一种方法将其变成“线路输入”或找到“线路输入”坞站连接器上的引脚。
  • 指向 iDevice 屏幕的网络摄像头(以及指向计算机屏幕的 iDevice 摄像头)。呜呜呜。
  • 加入 MFi 计划。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 2022-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多