1.找到虚拟按键
vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml中定义了初始的虚拟按键位置:(若不需要控制可以在
overlay中直接进行修改)
<string name="config_navBarLayout" translatable="false">left[.5W],back[1WC];home;recent[1WC],right[.5W]</string>
2.找到加载虚拟按键的方法
vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java中的
getDefaultLayout方法中return mContext.getString(R.string.config_navBarLayout);
3.需要进行控制思路很简单只需要在getDefaultLayout方法中加个判断语句进行控制即可,麻烦的是在设置中加入控制选项并更新SystemUI
3.1 在设置中的显示设置加控制虚拟按键交换的选项并添加控制功能
3.1.1 在vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/arrays.xml中添加
+ <string-array name="nav_back_key_entries">
+ <item>Back key to the left </item>
+ <item>Back key to the right</item>
+ </string-array>
+
+ <string-array name="nav_back_key_values" translatable="false">
+ <item>1</item>
+ <item>2</item>
+ </string-array>
3.1.2 在vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/strings.xml中添加
+ <string name="nav_bar_key_right_title">Set back key</string>
3.1.3 在vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/display_settings.xml中添加
+