Android 系统导航栏和状态栏配置
Android 13 配置方法
Note
Android 13系统环境下,RK系列主板均支持以下修改方法,AllWinner系列主板仅T527和A733系列主板支持。
命令行修改
命令行隐藏状态栏:
命令行显示状态栏:
命令行隐藏导航栏:
命令行显示导航栏:
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 命令行修改
通过设置系统属性修改:
A733 命令行修改
通过全局设置控制状态栏和导航栏的显示与隐藏,设置立即生效,无需重启。: