2013-01-08 23 views
5

Wir haben ein externes iOS-Benachrichtigungslicht erstellt, das das Audio des Geräts für die Stromversorgung verwendet. Wenn Sie einen Anruf auf dem iPhone erhalten und das Licht eingesteckt ist, erhalten Sie immer noch den Klingelton, aber wenn Sie abheben, wird der Ton an den Kopfhörer (das iPhone denkt, dass unser Licht/Gerät ein Kopfhörer ist) und der Benutzer umgeleitet muss myLED für mindestens 2mm extrahieren, um den Ton vom Frontempfänger des Telefons zu erhalten.iPhone-Kopfhörer-Audiobuchse, die umgeleitet wird

Wir haben alternative Lösungen für diese Herausforderung erforscht - vor kurzem haben wir einen Prototyp mit einer besonderen Steckerform hergestellt, so dass er vom Benutzer gedreht werden konnte, wenn er das Audio an den iPhone Lautsprecher/das Mikrofon umleitete. Obwohl es eine clevere Option klingen mag, ist diese Hardware-Lösung bei weitem nicht sauber - dies führt dazu, dass Positionen, an denen die myLED nicht funktioniert/nicht zuverlässig ist, und andere Komplikationen auftreten.

Ich kenne die Existenz von kAudioSessionOverrideAudioRoute_Speaker aber ich vermute, dass dies nur die App Audio auf den hinteren Lautsprecher (die "laute") und nicht auf den vorderen Empfänger (weil der "Empfänger" für das iPhone ist) Kopfhörer, wenn sie erkannt werden).

Was würden Sie vorschlagen? Super geschätzt!

Antwort

4

Ich glaube, Sie in einer schwierigen Situation sind:

  1. Es ist höchst unwahrscheinlich, Apple wird immer die Option freigeben Audio-Routing für Anrufe außer Kraft zu setzen. Als eine Schlüsselfunktionalität des Telefons neigen sie dazu, den Anrufaspekt unter Verschluss zu halten.

  2. Die Kopfhörerbuchse (wahrscheinlich - so machen es die meisten) verwendet die Impedanz zwischen Masse und einem oder beiden Lautsprechern oder der Fernbedienung, um festzustellen, ob der Stecker eingesteckt ist keine gute Möglichkeit, dies zu simulieren.

Die einzigen Optionen, ich glaube, Sie haben, sind diese:.

  1. muss der Benutzer das Gerät entfernen, wenn ein Anruf kommt

  2. einen Mikrocontroller auf der Buchse Geben Sie zu fahren ein Transistor; Dieser Transistor kann die Schaltung elektronisch unterbrechen, um die gleiche Impedanzsignatur wie eine nicht gesteckte Buchse zu liefern.

Wie, wann, und wenn Sie die Informationen an die Buchse zur Verfügung stellen kann, dass ein Anruf im Gange ist jenseits meines Wissens ist: Gibt es eine API für „incoming aber noch nicht beantworteter Anruf“ Sie kann Haken ? Müssen Sie eine Überwachungsfunktion ausführen, um die Kommunikation mit Ihrer App sicherzustellen? Wäre es möglich, stattdessen den Dock Connector zu verwenden? Ich denke, das sind wirklich deine Möglichkeiten. Keine vollständige Antwort, aber das sind meine Gedanken.

Verwandte Themen