跳转至

Android 系统导航栏和状态栏配置

Android 13 配置方法

Note

Android 13系统环境下,RK系列主板均支持以下修改方法,AllWinner系列主板仅T527和A733系列主板支持。

命令行修改

命令行隐藏状态栏:

(ADB)$ am broadcast -a android.intent.action.HIDE_STATUSBAR_BAR

命令行显示状态栏:

(ADB)$ am broadcast -a android.intent.action.SHOW_STATUSBAR_BAR

命令行隐藏导航栏:

$ am broadcast -a android.intent.action.HIDE_NAVIGATION_BAR

命令行显示导航栏:

$ am broadcast -a android.intent.action.SHOW_NAVIGATION_BAR

APP修改

从网盘中获取状态栏和导航栏测试APP

SDK 源码修改

默认隐藏状态栏

Android13 默认隐藏状态栏修改如下:

--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -952,6 +952,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
         mRegisterStatusBarResult = result;

         createAndAddWindows(result);
+        hideStatusBar();

         if (mWallpaperSupported) {
             // Make sure we always have the most current wallpaper info.

Android13 默认禁止状态栏下拉修改如下:

--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -536,10 +536,12 @@ public class CommandQueue extends IStatusBar.Stub implements

     // TODO(b/118592525): add multi-display support if needed.
     public boolean panelsEnabled() {
-        final int disabled1 = getDisabled1(mDisplayTracker.getDefaultDisplayId());
-        final int disabled2 = getDisabled2(mDisplayTracker.getDefaultDisplayId());
-        return (disabled1 & StatusBarManager.DISABLE_EXPAND) == 0
-                && (disabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) == 0;
+        return false;
+        // final int disabled1 = getDisabled1(mDisplayTracker.getDefaultDisplayId());
+        // final int disabled2 = getDisabled2(mDisplayTracker.getDefaultDisplayId());
+        // return (disabled1 & StatusBarManager.DISABLE_EXPAND) == 0
+        //         && (disabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) == 0;
+        
     }

默认隐藏导航栏

Android13默认隐藏导航栏修改如下:

--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -952,6 +952,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
         mRegisterStatusBarResult = result;

         createAndAddWindows(result);
+        hideNavigation();

         if (mWallpaperSupported) {
             // Make sure we always have the most current wallpaper info.

默认使用手势导航

Android13 默认使用手势导航:

--- a/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
@@ -61,7 +61,7 @@
          0: 3 button mode (back, home, overview buttons)
          1: 2 button mode (back, home buttons + swipe up for overview)
          2: gestures only for back, home and overview -->
-    <integer name="config_navBarInteractionMode">0</integer>
+    <integer name="config_navBarInteractionMode">2</integer>
     <bool name="config_swipe_up_gesture_setting_available">true</bool>
  </resources>





#### A733系列主板默认隐藏状态栏/导航栏

K10B 通过 overlay 修改 `SettingsProvider` 默认值实现开机默认隐藏:

```diff
--- a/device/softwinner/jupiter/a733-demo-aiot/overlay/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/device/softwinner/jupiter/a733-demo-aiot/overlay/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -40,3 +40,6 @@
     <!-- Do not launch provision app -->
     <bool name="def_device_provisioned">true</bool>
     <bool name="def_user_setup_complete">true</bool>
+
+    <bool name="def_navigation_bar_enabled">false</bool>
+    <bool name="def_status_bar_enabled">false</bool>
 </resources>

AllWinner 配置方法

A133 命令行修改

通过设置系统属性修改:

setprop persist.sys.ban_sb true
setprop persist.sys.ban_nb true
reboot

A733 命令行修改

通过全局设置控制状态栏和导航栏的显示与隐藏,设置立即生效,无需重启。:

# 隐藏状态栏
adb shell settings put global status_bar_enabled 0

# 显示状态栏
adb shell settings put global status_bar_enabled 1

# 隐藏导航栏
adb shell settings put global navigation_bar_enabled 0

# 显示导航栏
adb shell settings put global navigation_bar_enabled 1