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 即可。