2010-12-03 4 views
2

Quelqu'un sait-il s'il est encore possible de détecter la forme tactile? Peut-être en obtenant les données brutes de l'écran tactile?iphone touch shape ou données brutes

Je trouve cette question/réponse ici: How to get raw touchscreen data?

qui mentionne GSEvent, mais il est assez vieux.

Je voudrais essayer d'obtenir un calcul grossier de la pression du toucher par sa forme/surface, mais bien sûr, UITouch ne donne qu'un point calculé.

Répondre

3

Oui, les données brutes tactile est contenu dans l'objet GSEventRecord, en particulier ce que vous cherchez est la propriété pathMajorRadius sur GSPathInfo, qui donne le radious majeur sur le robinet. Ceci est une estimation approximative de la pression, mais prendre en compte les grands/petits doigts donnent également des mesures différentes.

Méfiez-vous de la propriété pathPressure également dans GSPathInfo, il ne contient pas la pression. Il contient toujours 1, les écrans capacitifs (comme l'iPad ou l'iPhone) ne mesurent pas la pression du tout.

Si vous envisagez de soumettre votre application dans l'App Store, vous ne pourrez pas le faire si vous incluez l'accès aux infrastructures privées (comme dans ce cas, GSEvent.h dans le cadre GraphicServices). Mais ce que vous devez faire est d'attraper chaque UIEvent dans la méthode sendEvent de votre sous-classé UIApplication, puis utiliser les méthodes dans https://github.com/kennytm/iphone-private-frameworks/blob/master/GraphicsServices/GSEvent.h pour obtenir les informations de la GSEvent.

+0

"ne contient PAS la pression" - comment fonctionne GarageBand alors? –

+1

Il y a un certain nombre de façons de calculer la pression, ou mieux dit, approximative. L'un est les valeurs de l'accéléromètre sur différents moments de prise ou "robinets longs" par exemple (qui est "légal"). Un autre est le radieux du robinet, qui est avec des cadres privés et donc "illégal". Mais vous pouvez être sûr que si GarageBand utilisait des API privées, elle ne serait pas acceptée dans l'Apple Store. –

+1

Lol, pourquoi Apple n'admettrait-il pas sa propre application sur l'AppStore même s'il utilise des frameworks 'privés'? –