Android8.1 按钮控制隐藏NavigationBar

有时候做项目,需要隐藏NavigationBar,但有时候因为其他信号干扰出现自主弹出NavigationBar的情况,最终决定,在增加个快捷方式来控制NavigationBar显示。

一.增加快捷方式按钮

frameworks\base\packages\SystemUI\res\values\config.xml

 <string name="quick_settings_tiles_default" translatable="false">
        wifi,bt,hidbar,dnd,flashlight,rotation,battery,cell,airplane,cast
    </string>

frameworks\base\packages\SystemUI\res\values\strings.xml中添加

        <!-- QuickSettings: HidBar tile [CHAR LIMIT=NONE] -->
    <string name="quick_settings_Bar_label">BAR</string>
    <!-- QuickSettings: BAR (off) [CHAR LIMIT=NONE] -->
    <string name="quick_settings_Bar_off">Bar is Hid</string>
    <!-- QuickSettings: BAR (on) [CHAR LIMIT=NONE] -->
    <string name="quick_settings_Bar_on">BAR is Show</string>

2.创建按钮并添加事件广播,通过广播控制NavigationBar,在

frameworks\base\packages\SystemUI\src\com\android\systemui\qs\tiles\下创建文件

HidBarTile.java:

/*
 * Copyright (c) 2016, The Android Open Source Project
 * Contributed by the Paranoid Android Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.qs.tiles;


import android.app.Notification;
import android.app.NotificationManager;

import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.provider.Settings;
import android.widget.Switch;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.R;
import com.android.systemui.qs.QSHost;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.qs.tileimpl.QSTileImpl;


public class HidBarTile extends QSTileImpl<BooleanState> {



    private boolean headsetState;
    private String ACTION_HIDE_NAVIGATION ="com.android.systemui.qs.tiles.HidBarTile";
	
    public boolean isHeadsetState() {
        return headsetState;
    }
 
    public void setHeadsetState(boolean headsetState) {
        this.headsetState = headsetState;
    }


    public HidBarTile(QSHost host) {
        super(host);
    }

    @Override
    public BooleanState newTileState() {
        return new BooleanState();
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxy19881115

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值