2010-11-23 29 views
3

有2個iPhone應用程序。一個應用程序在前臺運行,另一個在後臺運行。有沒有辦法讓後臺應用程序通過USB發送數據而不進入前臺?理想情況下,我們希望將前臺應用程序保留在前臺,而後臺應用程序處理一些數據。數據處理完畢後,它會通知前臺應用程序數據已被處理。後臺運行的iPhone應用程序能否通過USB接口傳輸數據?

+0

因爲我真的很無能,所以我把這個放在註釋中,但是:爲什麼不在後臺線程中運行後臺進程呢?我很確定iPhone應用程序不會在後臺運行,這意味着這可能是您唯一的選擇。 – MusiGenesis 2010-11-23 22:35:57

+0

iPhone應用程序可以在後臺運行,但完全沒有必要。後臺線程也是不必要的。只需使用異步I/O即可! – 2010-11-24 00:24:09

回答

2

不,它不能。如果沒有使用私有框架,甚至不能執行此操作,除非您在Made for iPhone計劃中。如果您是,那麼您的組織將根據提供給您的文檔知道您可以和不可訪問的內容,時間和方式。

如果您在Made for iPhone計劃中,並且不清楚您有何訪問權限以及何時與您的組織中與該計劃進行技術聯繫的人員聯繫,他們將能夠你的細節。

+0

非常感謝您的快速響應。 – Lexy 2010-11-23 23:50:01

0

如果任務在應用程序位於前臺時啓動,並且您調用了適當的beginBackgroundTask/endBackgroundTask方法,則應該可以在應用程序停止後繼續運行它。

請注意,對USB的訪問受到限制(請參閱jer的回答),並且在同一設備上的不同應用程序之間沒有通過官方認可的方式進行通信。此外,您只能在App Store中一次購買/下載一個應用程序,我無法看到Apple批准了需要您下載第二個應用程序才能使用的應用程序。所以你可能首先要解決更大的問題。

0

如果你告訴我們你實際上想達到什麼,這將有助於顯着。例如,「我希望用戶手機上的MyApp能夠在用戶的計算機上與MyApp進行通信」。

絕對最簡單的方法是在手機和電腦之間發送數據是要求它們都在同一個Wi-Fi網絡上。幾個iPhone應用程序包含一個Web服務器(這是在操作系統3.2之前「文件共享」的最簡單方式),還有更多iPhone應用程序連接到運行服務器軟件的計算機。

你的其他選擇,或多或少:

  • 反向工程的GameKit的藍牙側和重新實現它在計算機端。我不知道有誰這樣做。鬆散地說,我認爲它是基於藍牙PAN的IP加上某種藍牙服務發現。音頻輸入/輸出,例如,耳機插孔或基座連接器上的某些引腳。我並不完全確定麥克風側是如何工作的(我檢查時對碳麥克風的阻力有點高),但你可能會很幸運,並找到一種方法將它變成「線路輸入」或找到「線路輸入」基座連接器上的針腳。
  • 指向iDevice屏幕(和指向計算機屏幕的iDevice相機)的網絡攝像頭。 Ewwwww。
  • 加入MFi計劃。
相關問題