Welche Hardware-Attribute kann das iOS-Gerät erkennen oder erhalten, wenn es an eine MFI-Hardware angeschlossen ist?

8

Ich beschäftige mich mit externem Zubehör und MFI für ein Projekt und habe folgende Frage:

Welche Hardware-Attribute eines Drittanbieters können nach Anschluss eines iOS-Geräts an die MFI-Hardware erkannt werden? Insbesondere suche ich nach einem generischen Weg, um die Geräteklassen oder Fähigkeiten zu bestimmen, anstatt die spezifischen Hersteller- und Gerätenamen zu prüfen, ähnlich wie es Android tun kann (siehe unten). Ist das möglich?

Ссылка

Das Endziel: Schaltet einen Boolean um, wenn er mit einem Audio-Dock verbunden ist. Andere Ereignisse ignorieren Ich bin mir nicht sicher, wie granular iOS werden kann. Kann iOS den Unterschied zwischen einem Audiodock und einem Golf Putter App Cradle ? Gibt MFi Einblick in die Fähigkeiten eines Geräts?

Ich werde auf iOS 4.2 + abzielen.

    
Boon 20.08.2012, 15:38
quelle

1 Antwort

5

Sie können anfordern, Benachrichtigungen von der Klasse EAAccessoryManager zu erhalten (über die Methode registerForLocalNotifications ). Um dies zu tun, müssen Sie ExternalAccessory.framework zu Ihrem Projekt hinzufügen.

%Vor%

Sobald eine Hardware hinzugefügt wurde, erhalten Sie eine Benachrichtigung mit EAAccessoryKey , was wiederum verwendet werden kann, um eine EAAccessory vom Zubehör-Manager zu erhalten

%Vor%

Das Zubehör verfügt über eine Reihe von Eigenschaften, mit denen Sie feststellen können, welche Art von Hardware angeschlossen wurde:

%Vor%

Ich habe keine Ahnung, was Ihr Audio-Dock hier bietet, aber es sollte einfach einfach versuchen und hoffen, dass es für alle Geräte einheitlich ist :-)

Wenn Sie nicht an einem bestimmten Gerät, sondern an einer Klasse von Geräten (mit einem bestimmten Verhalten) interessiert sind, sollte protocolStrings nützlich sein. Das Array besteht aus Strings, die Protokolle benennen (im Sinne von Verhalten, nicht im Sinne von ObjectiveC). Die Namen sind als Reverse-DNS-Zeichenfolgen (com.mycompany.myprotocol) formatiert.

Wenn Sie einen oder mehrere solcher Protokollnamen im Abschnitt UISupportedExternalAccessoryProtocols (Typ: Array von Zeichenfolgen) der Info.plist -Datei Ihrer App angeben, wird Ihre App gestartet, wenn ein ordnungsgemäßes Gerät angeschlossen ist.

    
Matthias 23.08.2012, 07:18
quelle

Tags und Links