Gérer tous les événements de la souris dans Android
Bien, la question est plutôt simple - comment puis-je gérer gauche/droite/milieu d'une souris, de roues et de (!)passez la souris déplacer dans android 2/3/4.
J'ai fouiné sur ce sujet et a trouvé la suivante
- de l'api de 14 on peut manipuler presque n'importe quoi avec une jolie MotionEvent
- nous avons également Ouvert un Accessoire qui semble être ok avec la souris USB depuis api 12 (manque encore le bluetooth) (UPD OA réalignés pour 2.3.4)
- de la souris fonctionne bien sur les tablettes avec ICS et en Nid d'abeille et de cyanogène 2.3.7, mais d'agir comme seule touche sur chaque bouton.Je me demande est-il un moyen d'intercepter les messages de souris.
M'aider s'il vous plaît comprendre comment je peux gérer le bluetooth et l'usb de la souris dans la plus simple et la bonne façon dans chaque version d'android. Ou dire son impossible.
UPD2: semble comme Hôte USB uniquement en 3.1+, tout en USB Accessoire inutile pour cette tâche
source d'informationauteur mjollneer
Vous devez vous connecter pour publier un commentaire.
Ce sont mes conclusions:
Pour l'Api de Niveau < 9:
KeyEvent
avecKeyEvent.KEYCODE_BACK
. Aucun moyen de distinguer entre les "Dos" des presses et secondaire appuie sur un bouton.Pour L'Api De Niveau 9+:
MotionEvent.getSource()
. - Je l'utiliser pour détecter si l'entrée est à partir de la souris.KeyEvent
avecKeyEvent.KEYCODE_BACK
. Sur certains appareils leKeyEvent.getSource()
retourneInputDevice.SOURCE_MOUSE
de sorte bouton secondaire de détection fonctionne dans certains cas.Pour L'Api De Niveau 12+:
OnGenericMotionListener
a été ajouté. - Je l'utiliser pour détecter les mouvements de souris avecACTION_HOVER_MOVE
et le changement de roues avecACTION_SCROLL
.Pour L'Api De Niveau 14+:
MotionEvent.getButtonState()
. J'ai suivi cela de distinguer si une primaire, secondaire, tertiaire bouton de la souris est enfoncé lorsque leMotionEvent.getActionMasked()
estACTION_MOVE
ACTION_DOWN
ouACTION_UP
.Je n'ai pas regardé l'Api de Niveau 15/16 ou le type de l'outil, parce que je suis en mesure de suivre tous les événements de la souris avec ce que j'ai décrit ci-dessus. Ce serait intéressant si quelqu'un a des informations supplémentaires ou si je manque avec 15/16/types d'outil.
OK. Je crois que j'ai une idée.
J'ai lu faits saillants sur android 3.x/4.x et réalisé que...
on peut utiliser la souris dans android 3+, dans les anciennes versions de la souris est spécifique à l'appareil
on peut intercepter reconnu les événements de souris à partir de n'importe quelle source (BT ou USB)...
2.1. ... de défilement ou hover_move en 3.1+ dans onGenericMotionEvent
2.2. ... primaire, secondaire et tertiaire boutons et passez entrer/quitter le dans android 4.0+ (et enfin TOOL_TYPE_MOUSE constante)
L'autre option est d'analyser assez bas niveau de données de bluetooth prise usb ou en mode hôte.
Suis-je droit? Me demande encore si quelqu'un a une meilleure solution.