下面列出了android.content.res.Configuration#HARDKEYBOARDHIDDEN_NO 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void checkDisplaySize() {
try {
Configuration configuration = applicationContext.getResources()
.getConfiguration();
usingHardwareInput = configuration.keyboard != Configuration.KEYBOARD_NOKEYS
&& configuration.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO;
WindowManager manager = (WindowManager) applicationContext
.getSystemService(Context.WINDOW_SERVICE);
if (manager != null) {
Display display = manager.getDefaultDisplay();
if (display != null) {
display.getMetrics(displayMetrics);
display.getSize(displaySize);
Log.d("tmessages", "display size = " + displaySize.x + " " + displaySize.y + " "
+ displayMetrics.xdpi + "x" + displayMetrics.ydpi);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
RelativeLayout parent = (RelativeLayout) findViewById(R.id.parent);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) parent.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, 0);
parent.setLayoutParams(layoutParams);
}
}
/**
* Returns true if either soft or hard keyboard is active.
*
* @param service Accessibility Service that is currently trying to get keyboard state.
* @return {@code true} if either soft or hard keyborad is active, else {@code false}.
*/
// TODO: Move the logic of updating keyboard state into WindowTracker.
public static boolean isKeyboardActive(AccessibilityService service) {
if (service == null) {
return false;
}
Configuration config = service.getResources().getConfiguration();
WindowManager windowManager = new WindowManager(service);
boolean isSoftKeyboardActive = windowManager.isInputWindowOnScreen();
boolean isHardKeyboardActive =
(config.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO);
return isSoftKeyboardActive || isHardKeyboardActive;
}
@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
boolean keyboardAvailable = false;
if (config.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO)
keyboardAvailable = true;
input.keyboardAvailable = keyboardAvailable;
}