2013-01-14 4 views
7

Auf Android ist es möglich, programmgesteuert zu überprüfen, ob das Gerät Multitouch unterstützt oder nicht mit http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_TOUCHSCREEN_MULTITOUCH.Programmgesteuert finden Sie, wie viele Finger in Multitouch Android-Gerät unterstützt

Ist es auch möglich genau zu prüfen, wie viele Finger das Gerät in Multitouch erkennen kann? Z.B. Soweit ich weiß, wird ein 2-Finger-Multitouch unterstützt, beginnend mit 2.x, aber 3-Finger-Multitouch ab 4.0. Aber unsere Kunden berichten von einigen neuen Geräten mit 4.x, die noch keine 3 Finger unterstützen, was eine einfache Überprüfung gegen die Version von Android OS nutzlos macht.

Eine mögliche Lösung wäre, in jedem Wörterbuch für jedes Gerät zu speichern, welche Anzahl von Fingern es maximal unterstützt, aber mit 1k + Geräten da draußen und neuen ständig erscheint es nicht durchführbar.

Irgendeine Lösung?

EDIT: In der Tat habe ich gerade festgestellt, dass das Problem vom Kunden gemeldet wurde ein Gerät Problem auf der HTC One-Serie. Siehe http://www.mobiflip.de/htc-one-serie-multitouch-beschraenkung-aufheben-tipp/ Der Benutzer muss die gerätespezifische Gestenerkennung in den Einstellungen aktivieren, damit mehr als 5 Finger funktionieren. So würde das Gerät wahrscheinlich sogar 5+ Finger Unterstützung zeigen. Ich denke, wir werden nur nach dem Gerätemodell suchen und ein spezielles Popup anzeigen, das dem Benutzer sagt, dass er die HTC-spezifische Einstellung ausschalten soll.

+0

prüfen, wie in den Antworten gezeigt, können Sie nicht bestimmen, ob ein Gerät einige beliebige Anzahl von Berührungspunkten unterstützt (beispielsweise 3). Sie müssen Ihre App so entwickeln, dass sie die verschiedenen Buckets unterstützt, oder Sie können mit '' festlegen, dass Ihre App nur auf Geräten ausgeführt wird, die sich in denselben Buckets befinden. – CommonsWare

Antwort

11

Soweit ich weiß, gibt es keine Möglichkeit, die genaue Anzahl der Zeiger von einem Gerät unterstützt zu erhalten. Ich möchte das Rad hier nicht neu erfinden, deshalb möchte ich ein ähnliches Problem und eine gute Antwort hier teilen: Android multitouch in supported devices.

Zusammenfassend, bemerkenswert ist die Methode PackageManager.hasSystemFeature(), mit der Sie herausfinden können, in welche Multitouch-Support-Kategorie das aktuelle Gerät gehört. Nützliche Feature-Codes gehören:

  • FEATURE_TOUCHSCREEN_MULTITOUCH - grundlegende Unterstützung für 2 Zeiger
  • FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT - Unterstützung für 2+ unabhängige Zeiger.
  • FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND - Unterstützung für 5+ unabhängige Zeiger.
+0

Ich war auch dort. Am Ende habe ich es geschafft, die Benutzeroberfläche und Gesten zu modifizieren, um nur die Fälle von * 2 Zeigern * und * 2 unabhängigen Zeigern * zu unterscheiden. Hoffe, du wirst es auch herausfinden. – andr

+0

Verstehe ich es richtig: es gibt keine Möglichkeit, den Fall zu unterscheiden, wenn das Gerät genau 2 unabhängige Zeiger unterstützt und nicht 3 aus dem Fall, wenn das Gerät 3 oder mehr Zeiger unterstützt? – iseeall

+0

@iseeall ganz richtig, aber ändern * 3 oder mehr * zu * 3 oder 4 *. Wenn das Gerät 5+ unterstützt, sollte es die * jazzhand * -Funktion enthalten. – andr