第一种方法
1、在android/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
以添加
+public void startCustemApplication(String pakage,String activity){
+ Intent intent = new Intent();
+ intent.setClassName(pakage,activity);
+ final UserHandle userHandle = new UserHandle(UserHandle.getCallingUserId());
+ mContext.startActivityAsUser(intent, userHandle);
+}
public void systemReady(final Runnable goingCallback) {
synchronized(this) {
public final class ActivityManagerService extends ActivityManagerNative
// Start up initial activity.
mBooting = true;
startHomeActivityLocked(mCurrentUserId, "systemReady");
+ String packageName = SystemProperties.get("sys.drcc.start_package", "com.android.launcher+3");
+ String activityName = SystemProperties.get("sys.drcc.start_activity",
+ "com.android.launcher3.L+auncher");
+ startCustemApplication(packageName,activityName);
try {
if (AppGlobals.getPackageManager().hasSystemUidErrors()) {
第二种方法
在packages/apps/Launcher3/src/com/android/launcher3/launcher.java下
@Override
protected void onCreate(Bundle savedInstanceState) {
openApp("packagename"," activityname");
}
+ private void openApp(String packagename, String activityname) {
+ try {
+ //getActivity().finish();
+ ComponentName cn = new ComponentName(packagename, activityname);
+ Intent i = new Intent();
+ i.setComponent(cn);
+ // i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(i);
+ //mContext.overridePendingTransition(0, 0);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+}
技术交流群