Java tutorial
//package com.java2s; //License from project: Apache License import android.content.Context; import android.content.res.Configuration; import android.os.Build; import android.view.View; import android.view.Window; import android.view.WindowManager; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Main { public static void hide(View decorView) { if (!hasSmartBar()) return; try { @SuppressWarnings("rawtypes") Class[] arrayOfClass = new Class[1]; arrayOfClass[0] = Integer.TYPE; Method localMethod = View.class.getMethod("setSystemUiVisibility", arrayOfClass); Field localField = View.class.getField("SYSTEM_UI_FLAG_HIDE_NAVIGATION"); Object[] arrayOfObject = new Object[1]; try { arrayOfObject[0] = localField.get(null); } catch (Exception e) { } localMethod.invoke(decorView, arrayOfObject); return; } catch (Exception e) { e.printStackTrace(); } } public static void hide(Context context, Window window) { hide(context, window, 0); } public static void hide(Context context, Window window, int smartBarHeight) { if (!hasSmartBar()) { return; } if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { return; } window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); int statusBarHeight = getStatusBarHeight(context); window.getDecorView().setPadding(0, statusBarHeight, 0, -smartBarHeight); } public static boolean hasSmartBar() { try { Method method = Class.forName("android.os.Build").getMethod("hasSmartBar"); return ((Boolean) method.invoke(null)).booleanValue(); } catch (Exception e) { } if (Build.DEVICE.equals("mx2")) { return true; } else if (Build.DEVICE.equals("mx") || Build.DEVICE.equals("m9")) { return false; } return false; } private static int getStatusBarHeight(Context context) { int result = 0; int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = context.getResources().getDimensionPixelSize(resourceId); } return result; } }