长按Home键唤起Google Search

长按Home键唤起Google Search

android默认处理长按Home键会唤起最近使用应用列表,而部分厂商在安装了GMS后,Google会要求
修改长按Home键唤起Google Search

一,具有实体按键的厂商可以更改配置文件

Frameworks/base/core/res/res/values/Config.xml

<integer name="config_longPressOnHomeBehavior">2</integer>

改为0即可,这里的值可以设置三个,1代表唤起recent app界面;2代表唤起搜索界面(Google Search);0代表Nothing;

具体实现是在PhoneWindowManager中handleLongPressOnHome处理Home键长按事件

    private void handleLongPressOnHome(int deviceId) {
    if (mLongPressOnHomeBehavior == LONG_PRESS_HOME_NOTHING) {
        return;
    }
    mHomeConsumed = true;
    performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
    switch (mLongPressOnHomeBehavior) {
        case LONG_PRESS_HOME_ALL_APPS:
            launchAllAppsAction();
            break;
        case LONG_PRESS_HOME_ASSIST:
            launchAssistAction(null, deviceId);
            break;
        default:
            Log.w(TAG, "Undefined home long press behavior: " + mLongPressOnHomeBehavior);
            break;
    }
}

二,虚拟按键的厂商需要修改SystemUi的导航栏设置

/SystemUI/ src/com/android/systemui/statusbar/phone/NavigationBarFragment.java

在此类中分别对home键的短按和长按都做了监听

    ButtonDispatcher homeButton = mNavigationBarView.getHomeButton();
    homeButton.setOnTouchListener(this::onHomeTouch);
    homeButton.setOnLongClickListener(this::onHomeLongClick);

我们只需要对onHomeLongClick做适当处理即可,比方说,切换到儿童模式长按home不会跳出google search

@VisibleForTesting
boolean onHomeLongClick(View v) {
    Log.i(TAG, "onHomeLongClick");
    if (!mNavigationBarView.isRecentsButtonVisible()
            && ActivityManagerWrapper.getInstance().isScreenPinningActive()) {
        return onLongPressBackHome(v);
    }
    if (shouldDisableNavbarGestures()) {
        return false;
    }
    mNavigationBarView.onNavigationButtonLongPress(v);
    mMetricsLogger.action(MetricsEvent.ACTION_ASSIST_LONG_PRESS);
    //add  start
    if(!isKidMode(getContext())){
        mAssistManager.startAssist(new Bundle() /* args */);
        //此处为唤醒google search的地方
    }
    //add  end
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值