首先配置监听
Context.registerContentObserver(Settings.System.getUriFor("navigationbar_is_min"), true, mNavigationStatusObserver);
然后在监听结果中检测是否隐藏
private ContentObserver mNavigationStatusObserver = new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { //TODO: deal with data change Log.i("yyj","selfChange = " + selfChange); int navigationBarIsMin = Settings.System.getInt(getContentResolver(), "navigationbar_is_min", 0); } };
navigationBarIsMin就可以判断虚拟键是否隐藏。