前言
客户需要默认自己的Launcher为home,同时保留系统的Launcher3.
解决办法:在启动home应用之前设置一下默认Launcher。查找home app启动相关资料,找到了frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java的startHomeOnTaskDisplayArea函数。这个函数会先获取默认Launcher,然后启动。所以只要在这个函数最前面添加设置默认Launcher的代码即可。下面是修改系统第一次开机设置默认Luauncher的代码。
--- a/frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -169,6 +169,10 @@ import java.util.Objects;import java.util.Set;import java.util.function.Consumer;import java.util.function.Function;
+import android.os.SystemProperties;
+import android.util.Log;
+import android.content.pm.PackageManager;
+import android.content.IntentFilter;/** Root {@link WindowContainer} for the device. */cla