2010-11-23 4 views
3

Es gibt 2 iPhone-Anwendungen. Eine Anwendung läuft im Vordergrund und die andere läuft im Hintergrund. Gibt es eine Möglichkeit, die Hintergrundanwendung dazu zu bringen, Daten über USB zu senden, ohne in den Vordergrund zu treten? Idealerweise möchten wir die Vordergrund-App im Vordergrund behalten, während die Hintergrund-App einige Daten verarbeiten soll. Sobald die Daten verarbeitet sind, informiert sie die Vordergrund-App darüber, dass die Daten verarbeitet wurden.Kann eine iPhone-Anwendung, die im Hintergrund läuft, Daten über die USB-Schnittstelle übertragen?

+0

Ich setze das in Kommentare, da ich wirklich ahnungslos bin, aber: warum nicht den Hintergrundprozess als Hintergrund-Thread innerhalb Ihrer Hauptanwendung ausführen? Ich bin mir ziemlich sicher, dass iPhone Apps nicht im Hintergrund laufen, was bedeutet, dass dies wahrscheinlich deine einzige Wahl ist. – MusiGenesis

+0

iPhone Apps können im Hintergrund laufen, aber es ist völlig unnötig. Hintergrundthreads sind ebenfalls nicht erforderlich. Verwenden Sie einfach asynchrone E/A! –

Antwort

2

Nein kann es nicht. Dies kann nicht einmal ohne private Frameworks geschehen, es sei denn, Sie befinden sich im Programm "Made for iPhone". Wenn dies der Fall ist, wird Ihre Organisation basierend auf der Ihnen zur Verfügung gestellten Dokumentation wissen, worauf und wann Sie nicht zugreifen können und wann.

Wenn Sie im Programm "Made for iPhone" sind und nicht wissen, auf was Sie zugreifen können und wann, wenden Sie sich an die Person in Ihrer Organisation, die technischer Kontakt mit Apple für dieses Programm ist Sie die Details.

+0

Vielen Dank für die schnelle Antwort. – Lexy

0

Wenn die Aufgabe gestartet wird, während sich die App im Vordergrund befindet und Sie die entsprechenden Methoden beginBackgroundTask/endBackgroundTask aufrufen, sollten Sie die Ausführung der Aufgabe fortsetzen können, nachdem die App im Hintergrund ausgeführt wurde.

Beachten Sie, dass der Zugriff auf USB eingeschränkt ist (siehe Antwort von jer) und dass es keine offiziell genehmigte Möglichkeit gibt, zwischen verschiedenen Apps auf demselben Gerät zu kommunizieren. Sie können auch nur eine App im App Store kaufen/herunterladen und ich kann nicht sehen, dass Apple eine App genehmigt, für die Sie eine zweite App herunterladen müssen. So haben Sie vielleicht zuerst größere Probleme zu lösen.

+0

Vielen Dank für die schnelle Antwort. Wenn der Zugriff auf USB eingeschränkt ist, gibt es eine Bluetooth-API für die Datenübertragung? – Lexy

+0

Nur um zu verdeutlichen, ist das Gerät, auf das die Daten übertragen werden, ein Nicht-iOS-Gerät. – Lexy

0

Es würde helfen, deutlich, wenn Sie uns erzählten, was Sie eigentlich erreichen wollten. Beispiel: "Ich möchte, dass MyApp auf dem Telefon des Benutzers mit MyApp auf dem Computer des Benutzers kommuniziert".

Der absolut einfachste Weg ist, Daten zwischen dem Telefon und einem Computer zu senden ist es erforderlich, dass sie beide auf dem gleichen Wi-Fi-Netzwerk sind. Mehrere iPhone-Apps enthalten einen Webserver (dies war der einfachste Weg der "Dateifreigabe" vor OS 3.2) und viele weitere iPhone-Apps verbinden sich mit einem Computer, auf dem Server-Software läuft.

Ihre andere Optionen, mehr oder weniger:

  • Reverse-Engineering der Bluetooth-Seite GameKit und es auf der Computer-Seite neu implementieren. Ich bin mir nicht bewusst, dass jemand das getan hat. Ich glaube, es ist IP über Bluetooth PAN und eine Art Bluetooth-Service-Erkennung.
  • Audioeingang/-ausgang, z.B. die Kopfhörerbuchse oder bestimmte Stifte am Dock-Anschluss. Ich bin mir nicht ganz sicher, wie die mic-Seite funktioniert (der Widerstand war ein bisschen hoch für ein Carbonmikrofon, wenn ich nachschlage), aber du könntest Glück haben und einen Weg finden, es in "Line-In" oder "Line-In" zu verwandeln Pins auf dem Dock-Anschluss.
  • Eine Webcam, die auf den iDevice-Bildschirm zeigt (und die iDevice-Kamera auf den Computerbildschirm zeigt). Ewwwww.
  • Schließen Sie sich dem MFi-Programm an.
Verwandte Themen