10 Android9.0开发笔记/开机默认启动用户apk

41 次浏览

path: <source>/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
(1)屏蔽Intent getHomeIntent()函数中默认加载launcher的代码,改为默认加载自定义Activity

//edited by peng
//intent.setComponent(mTopComponent);
intent.setComponent(getDefaultActivity());

(2)增加通过包名自动获取Activity的函数

/** added by peng */
private ComponentName getDefaultActivity() {
    ComponentName defComp = null;
    // 默认启动的apk,可以修改为任意包名。
    String pkgDef = "com.lifereal.quantready9600.ui";
    Slog.i(TAG, "defautl packageName = " + pkgDef);
    Intent launcherIntent = new Intent("android.intent.action.MAIN", null);
    launcherIntent.setPackage(pkgDef);
    List<ResolveInfo> localResolveInfo = mContext.getPackageManager().queryIntentActivities(launcherIntent, 0);
    if (!localResolveInfo.isEmpty()) {
        ActivityInfo activityInfo = localResolveInfo.get(0).activityInfo;
        if (activityInfo != null) {
            Log.d(TAG, "get default activity" + activityInfo.name);
            defComp = new ComponentName(pkgDef, activityInfo.name);
        }
    }
    return defComp;
}

adb指令:
(1)查看包名

adb shell pm list packages

(2)结束进程

adb shell "am force-stop <包名>"

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部