Apple arrive à détecter la langue d’un clavier Magic Keyboard avec iOS

Pour un truc prévu un jour, j’ai un clavier Apple avec un agencement allemand sous la main, et j’ai eu une surprise en le branchant sur mon iPhone : iOS m’a proposé d’ajouter l’agencement correspondant. Donc d’une façon ou d’une autre, iOS est capable de détecter le modèle de clavier exact… et je ne sais pas comment.

Le clavier allemand

La norme HID pour l’USB (qui gère les claviers) ne propose pas de solutions directes pour qu’un clavier s’identifie et c’est un peu dommage. Un système d’exploitation ne peut pas déterminer facilement si un clavier est un QWERTY, un AZERTY, etc. macOS tente de détecter la version ANSI ou ISO au branchement, mais c’est tout, malheureusement.

Sur iPhone


Sur iPad

Les quelques essais que j’ai pu faire donnent quelques pistes, mais sans plus. Le CountryCode en HID renvoie 13 sur un clavier français et un allemand (c’est l’identifiant qui indique que c’est un ISO), les identifiants sont a priori les mêmes (mon clavier allemand n’est pas le même que mon français) et permettent juste de définir le type de clavier, et la seule option possible, c’est le numéro de série. Mais depuis un moment, Apple utilise des numéros de série plus ou moins aléatoire, donc si c’est géré comme ça, l’iPhone doit contacter Apple pour vérifier. Mais comme le pop-up n’apparaît qu’au premier branchement, c’est compliqué à vérifier.

Il est bien détecté comme allemand

Dans tous les cas, quand on va dans Réglages -> Général -> Clavier -> Clavier physique, on a une ligne Automatique – Allemand qui indique l’agencement. Ou Automatique – Français, etc.

Ici le français

Enfin, macOS n’a pas l’air de détecter la langue du clavier. Si quelqu’un a une idée ou sait comment iOS détecte l’agencement, ça m’intéresse.