35 votes

Comment détecter la présence d'un clavier matériel ?

Existe-t-il un moyen de détecter si le périphérique sur lequel je fonctionne actuellement a un clavier matériel installé ?

Comment puis-je interroger les capacités d'un appareil de toute façon ?

40voto

HostileFork Points 14697

[Android-developers] Re : Détecter le clavier physique Layout (ex : QWERTY vs QWERTZ)

Les drapeaux fournis par getResources().getConfiguration().keyboard sont un un bon moyen de vérifier quel clavier est disponible (le cas échéant).

4voto

Bad Loser Points 669

Utilisez la méthode suivante pour vérifier la présence du clavier dur à tout moment :
(A ma connaissance, les claviers souples tous absence de les caractéristiques testées ci-dessous )

public static boolean isHardKB(Context ctx) {
    Configuration cf = ctx.getResources().getConfiguration();
    return cf.navigation==Configuration.NAVIGATION_DPAD
        || cf.navigation==Configuration.NAVIGATION_TRACKBALL
        || cf.navigation==Configuration.NAVIGATION_WHEEL;
}

Possibilité de piéger todo les modifications du clavier en cours d'exécution pour chaque activité concernée via AndroidManifestes :

android:configChanges="keyboard|keyboardHidden|navigation"

Mais assurez-vous de soutenir le changement de manifeste ci-dessus avec (au moins) un mannequin. onConfigurationChanged()

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    // Optionally employ 'isHardKB()'   
}

4voto

dreinoso Points 223

Pour détecter un clavier qwerty commun connecté, utilisez ceci :

private boolean isKeyboardConnected() {
    return getResources().getConfiguration().keyboard == KEYBOARD_QWERTY;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X