A ka ndonjë mënyrë për të zbuluar nëse pajisja në të cilën jam duke përdorur aktualisht ka një tastierë harduerike të instaluar?
Si t'i kërkoj gjithsesi aftësitë e pajisjes?
A ka ndonjë mënyrë për të zbuluar nëse pajisja në të cilën jam duke përdorur aktualisht ka një tastierë harduerike të instaluar?
Si t'i kërkoj gjithsesi aftësitë e pajisjes?
"Flamujt e ofruar nga getResources().getConfiguration().keyboard janë një mënyrë e mirë për të kontrolluar se cila tastierë (nëse ka) është e disponueshme." [1]
http://d.android.com/reference/android/content/res/Configuration.html#keyboard
Përdorni metodën e mëposhtme për të konstatuar praninë e tastierës së fortë në çdo kohë:
(Për dijeninë time, të gjitha tastierave të buta u mungojnë veçoritë e testuara më poshtë )
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;
}
Në mënyrë opsionale, grackoni të gjitha ndryshimet e tastierës në kohën e ekzekutimit për çdo aktivitet të prekur nëpërmjet AndroidManifest:
android:configChanges="keyboard|keyboardHidden|navigation"
Por sigurohuni që të mbështesni ndryshimin e manifestimit të mësipërm me (të paktën) një dukuri onConfigurationChanged()
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Optionally employ 'isHardKB()'
}
Për të zbuluar tastierën e zakonshme qwerty të lidhur, përdorni këtë:
private boolean isKeyboardConnected() {
return getResources().getConfiguration().keyboard == KEYBOARD_QWERTY;
}