MTK Android 14 通过属性控制系统设置显示双栏或者单栏

第一步确认有添加静态库

复制代码
--- a/system_mssi_u0/vendor/mediatek/proprietary/packages/apps/MtkSettings/Android.bp
+++ b/system_mssi_u0/vendor/mediatek/proprietary/packages/apps/MtkSettings/Android.bp
@@ -72,6 +72,8 @@ android_library {
         "androidx.preference_preference",
         "androidx.recyclerview_recyclerview",
         "androidx.window_window",
+       "androidx.window.extensions",
+       "androidx.window.sidecar",
         "com.google.android.material_material",
         "setupcompat",
         "setupdesign",

第二步 验证

system_mssi_u0\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\activityembedding\ActivitvEmbeddingUtils.java 中isEmbeddingActivityEnabled 方法

返回值 true 时显示设置显示双栏

第三步修改源码

复制代码
--- a/system_mssi_u0/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
+++ b/system_mssi_u0/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
@@ -97,26 +97,33 @@ public class ActivityEmbeddingUtils {
      * </ul>
      */
     public static boolean isEmbeddingActivityEnabled(Context context) {
-        // Activity Embedding feature is not enabled if Settings doesn't enable large screen
-        // optimization or the device is not supported.
-        if (!isSettingsSplitEnabled(context)) {
-            Log.d(TAG, "isSettingsSplitSupported = false");
-            return false;
-        }
-        // Activity Embedding feature is not enabled if a user chooses to disable the feature.
-        if (!FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN)) {
-            Log.d(TAG, "isFlagEnabled = false");
-            return false;
-        }
-        // Don't enable Activity embedding for setup wizard.
-        if (!WizardManagerHelper.isUserSetupComplete(context)) {
-            Log.d(TAG, "isUserSetupComplete = false");
-            return false;
-        }
-        Log.d(TAG, "isEmbeddingActivityEnabled = true");
-        return true;
+    // Activity Embedding feature is not enabled if Settings doesn't enable large screen
+    // optimization or the device is not supported.
+    if (!isSettingsSplitEnabled(context)) {
+        Log.d(TAG, "isSettingsSplitSupported = false");
+        return false;
     }
 
+    // Activity Embedding feature is not enabled if a user chooses to disable the feature.
+    if (!FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN)) {
+        Log.d(TAG, "isFlagEnabled = false");
+        return false;
+    }
+
+    // Don't enable Activity embedding for setup wizard.
+    if (!WizardManagerHelper.isUserSetupComplete(context)) {
+        Log.d(TAG, "isUserSetupComplete = false");
+        return false;
+    }
+
+    // Check ro.product.is_support_SettingsSplitEnabled system property
+    boolean isSupportSettingsSplitEnabled = "true".equals(SystemProperties.get("ro.product.is_support_SettingsSplitEnabled", "true"));
+    Log.d(TAG, "yim test isEmbeddingActivityEnabled = " + isSupportSettingsSplitEnabled);
+
+    return isSupportSettingsSplitEnabled;
+       }
+
+

在合适的地方配置 ro.product.is support SettingsSplitEnabled 即可。

相关推荐
RATi GORI10 小时前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
MoFe111 小时前
【Mysql】创建IP授权用户并授权
android
冬奇Lab12 小时前
Camera2 API架构基础:Android视频系统的大门
android·音视频开发·源码阅读
hnlgzb12 小时前
安卓app kotlin语法,Hilt是什么东西?
android·开发语言·kotlin
Android系统攻城狮14 小时前
Android tinyalsa深度解析之pcm_params_get_periods_min调用流程与实战(一百七十三)
android·pcm·tinyalsa·音频进阶手册
Xempastissimo15 小时前
Android常见界面控件
android
法欧特斯卡雷特15 小时前
从 Kotlin 编译器 API 的变化开始: 2.3.20
android·后端·开源
词元Max16 小时前
1.5 Harness 架构深度解析:Claude Code 为什么强?
android·架构
yy552716 小时前
Mysql 主从复制与读写分离
android·数据库·mysql
zhenxin012217 小时前
万字详解 MySQL MGR 高可用集群搭建
android·mysql·adb