GMS之Launcher中去除默认Search或替换为Chrome Search

这篇具有很好参考价值的文章主要介绍了GMS之Launcher中去除默认Search或替换为Chrome Search。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

将Launcher中搜索框去除

将FeatureFlags.java文件中的QSB_ON_FIRST_SCREEN变量修改为false

\system\vendor\mediatek\proprietary\packages\apps\Launcher3\src\com\android\launcher3\config\FeatureFlags.java

/**
 * Defines a set of flags used to control various launcher behaviors.
 *
 * <p>All the flags should be defined here with appropriate default values.
 */
public final class FeatureFlags {
    /**
     * Enable moving the QSB on the 0th screen of the workspace. This is not a configuration feature
     * and should be modified at a project level.
     */
   public static final boolean QSB_ON_FIRST_SCREEN = BuildConfig.QSB_ON_FIRST_SCREEN;
   

在源码中是通过launcher3中的BuildConfig.java去获取变量(默认true),那么在这里将变量修改为false即可(自行添加系统变量进行灵活控制也行)

\system\vendor\mediatek\proprietary\packages\apps\Launcher3\src_build_config\com\android\launcher3\BuildConfig.java

public final class BuildConfig {
    public static final String APPLICATION_ID = "com.android.launcher3";
    public static final boolean DEBUG = false;
    /**
     * Flag to state if the QSB is on the first screen and placed on the top,
     * this can be overwritten in other launchers with a different value, if needed.
     */
    public static final boolean QSB_ON_FIRST_SCREEN = false;
}

最近在Android 13平台修改以上代码后,在Launcher中并不生效,后来发现,如果SearchLauncherQuickStep存在会默认使用,那么我们的修改就不会生效,因此在这里也需要把它注释掉

system\vendor\partner_gms\products\gms.mk

GMS_PRODUCT_PACKAGES += \
    #SearchLauncherQuickStep

如何将默认的Search替换为其他的? 比如项目是出货RU(俄罗斯)的,根据要求需要将Launcher中的默认Google Search 要更换为 Chrome Search

String providerPkg 为 Chrome 浏览器应用的包名

String className 为 launcher中Chrome Search组件的名字

Boolean ruSupport 为了判断当前版本是否为RU版本(一般只有RU地区才需要这样替换Search)

在getSearchWidgetProviderInfo方法中进行修改判断文章来源地址https://www.toymoban.com/news/detail-729909.html

system\vendor\mediatek\proprietary\packages\apps\Launcher3\src\com\android\launcher3\qsb\QsbContainerView.java

     /**
     * returns it's AppWidgetProviderInfo using package name from getSearchWidgetPackageName
     * @param context
     * @return AppWidgetProviderInfo
     */
    @Nullable
    public static AppWidgetProviderInfo getSearchWidgetProviderInfo(@NonNull Context context) {
        String providerPkg = getSearchWidgetPackageName(context);
        if (providerPkg == null) {
            return null;
        }

        //add ---------------------------------------------------------
        String  providerPkg = "com.android.chrome";
        String className = "org.chromium.chrome.browser.searchwidget.SearchWidgetProvider";
        Boolean ruSupport = SystemProperties.get("ro.product.name");
        //end ---------------------------------------------------------
        

        AppWidgetProviderInfo defaultWidgetForSearchPackage = null;
        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
        for (AppWidgetProviderInfo info :
                appWidgetManager.getInstalledProvidersForPackage(providerPkg, null)) {
            if (info.provider.getPackageName().equals(providerPkg) && info.configure == null) {
                if ((info.widgetCategory
                        & AppWidgetProviderInfo.WIDGET_CATEGORY_SEARCHBOX) != 0) {
                             //add ---------------------------------------------------------
                            if(ruSupport){
                                if(className.equals(info.provider.getClassName())){
                                    return info;
                                }
                            }else{
                                return info;
                            }
                            //end ---------------------------------------------------------
                } else if (defaultWidgetForSearchPackage == null) {
                    defaultWidgetForSearchPackage = info;
                }
            }
        }
        return defaultWidgetForSearchPackage;
    }
人的精神思想方面的优势越大,给无聊留下的空间就越小。

到了这里,关于GMS之Launcher中去除默认Search或替换为Chrome Search的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win10设置(chrome)为默认浏览器,但设置中没有该选项

            当我们设置某个浏览器为默认浏览器的时候,在【设置】-【默认应用】找到web浏览器选项时,没有显示该浏览器,或者该浏览器图片为空白。         以google chrome为例:         解决思路:在需要设置为默认浏览器的浏览器中选择【设置】-【默认浏览器】,我

    2024年02月12日
    浏览(39)
  • 【vscode设置默认浏览器为google,配置默认浏览器没有google,VS Code 报Windows找不到文件‘chrome‘】

    VS Code 报Windows 找不到‘chrome’ 项目启动ctar+鼠标左键快捷打开并没有使用默认浏览器 并且自己去浏览器配置并提供完整的选项 网上有很多其他的答案不过对我都没有 最后解决是在google里配置 不是默认浏览器会有个按钮 点一下就跳转到系统配置默认浏览器中,选项就可以出

    2024年02月12日
    浏览(43)
  • Listary – File Search & App Launcher

    Listary – File Search App Launcher 配置命令 打开系统属性高级配置窗口命令: 直接打开环境变量配置窗口命令: 更多系统属性 rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,0 常规 rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,1 计算机名 rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,2 硬件 rundll32.exe she

    2024年02月06日
    浏览(26)
  • Android 9.0 当系统内置两个Launcher时默认设置Launcher3以外的那个Launcher为默认Launcher

    在9.0系统rom定制化开发中,由于产品开发需要要求系统内置两个Launcher,一个是Launcher3,一个是自己开发的Launcher,当系统启动Launcher时, 不要弹出Launcher选择列表 选择哪个Launcher要求默认选择自己开发的Launcher作为默认Launcher,关于选择Launcher列表 其实都是在ResolverActivity.java中处理

    2024年01月18日
    浏览(36)
  • Android 10.0 当系统内置两个Launcher时默认设置Launcher3以外的那个Launcher为默认Launcher

    在10.0定制化开发中,由于产品开发需要要求系统内置两个Launcher,一个是Launcher3,一个是自己开发的Launcher,当系统启动Launcher时, 不要弹出Launcher选择列表 选择哪个Launcher要求默认选择自己开发的Launcher作为默认Launcher,关于选择Launcher列表 其实都是在ResolverActivity.java中处理的具

    2024年02月10日
    浏览(33)
  • Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复

     在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便 所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时

    2024年02月05日
    浏览(36)
  • Android10 设置默认Launcher

    不保留系统launcher 保留系统默认的Launcher 当系统存在多个launcher时,若没有设置默认launcher,开机启动后会弹出提示框,罗列所有launcher,用户选择并设置了默认launcher后,按home键以及以后重启都会进入默认的launcher。亦或者在设置--》应用和通知--》默认应用--》主屏幕应用 中

    2024年02月08日
    浏览(33)
  • Android Framework 常见解决方案(24)屏蔽FallbackHome,去除 Android正在启动,直接进入Launcher

    开机以后,设备会有一个“android正在启动”这样的弹框,这个界面是一个叫FallbackHome的Activity来展示的。FallbackHome机制是Android系统启动过程中的一种降级处理机制。当系统启动时,如果默认的Launcher应用无法正常加载或出现错误,系统会自动启用FallbackHome来替代默认Launcher。

    2024年01月24日
    浏览(37)
  • 开机直接进入该应用作为默认launcher(霸屏)或者开机自启指定应用

    开机默认此 app 作为 launcher 首次加载 ,就是设置这个 apk 为开机向导,并没有设置这个成默认 launcher ,若此应用是 launcher 应用那么按返回之后会提示让你选择哪一 laucher 前提是 此应用内置并没有作为 launcher 应用,就可以用下面的方法。 开机自启,开机自动启动某个指定应

    2023年04月08日
    浏览(34)
  • 搭载基于RK3229的Android5.1修改开机默认桌面Launcher

    在..rk3229_5.1_boxframeworksbaseservicescorejavacomandroidserveram目录找到ActivityManagerService.java文件。在文件里找到startHomeActivityLocked函数里的setDefaultLauncher。 在setDefaultLauncher设置开机默认桌面launch的包名。我开发的固件,所要启动的包名如下:          String  packageName = SystemP

    2024年02月06日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包