android - 如何以编程方式修改 Android Pie 9.0 中的 AOSP SystemUI?
问题描述
如何在 Android Pie AOSP 中修改状态栏?我想添加一些自定义图标以及电池、网络信号等现有图标。另外我想知道我必须编辑哪些文件才能以编程方式添加和删除快速设置图块。
- 认为默认情况下没有快速设置图块,我如何以编程方式仅添加 wifi、蓝牙和 gps 快速设置图块?
- 如何在各自的磁贴中添加 wifi 和蓝牙设置的扩展布局,以便单击磁贴时,我可以显示现有的 wifi 网络和蓝牙设备?
- 获取 wifi 网络和蓝牙设备列表的代码在哪里?
- 我如何实现回调,以便如果我打开 wifi 并连接到网络,状态栏中的 wifi 图标变得可见?如果我希望状态栏中的自定义图标具有相同的行为,我该如何继续?
解决方案
鉴于您的问题,我认为您正在谈论快速设置图块。要制作快速设置图块,您的类必须扩展 TileService:
public class HSTileService extends TileService
。TileService 有几个必须实现的方法:
public void onClick()
、public void onTileRemoved()
、public void onTileAdded()
、public void onStartListening()
和public void onStopListening()
。
onStartListening
当 tile 进入视图onStopListening
时调用,当它离开视图时调用。所有这些方法都必须super.<method_name>
作为它们的第一个操作调用。
要获取您操纵以更改磁贴状态的 QSTile 对象,请使用
Tile tile = getQsTile();
要设置状态,请使用tile.setState()
,它采用Tile.STATE_ACTIVE
、Tile.STATE_INACTIVE
或Tile.STATE_DISABLED
作为参数。更改磁贴的状态后,请确保您调用tile.updateTile()
或它不会更新。
要获取磁贴状态,请使用tile.getState()
最后,您需要以下导入:
import android.app.ActivityManager;
import android.content.Context;
import android.graphics.drawable.Icon;
import android.os.Build;
import android.service.quicksettings.Tile;
import android.service.quicksettings.TileService;
import android.content.Intent;
import android.util.Log;
如果您需要进一步的帮助,请注意,所有这些以及更多内容都可以在 AOSP 文档以及此处找到:https ://medium.com/androiddevelopers/quick-settings-tiles-e3c22daf93a8
推荐阅读
- python - Python调用函数作为来自另一个具有新值的函数的参数,Python
- node.js - 外部css和js没有加载到内部页面中nodejs express
- excel - 删除下划线并分别选择第一个值,然后在excel的另一个单元格中选择下两个值
- python - 我查找字谜的功能返回无
- python - 如何在while中使用for循环编写代码?
- r - 交叉验证:formula.character(object, env = baseenv()) 中的错误:公式无效
- mongodb - 如何插入具有 . 在使用 insertOne() mongodb 的密钥中?
- google-chrome-extension - Chrome 扩展程序 - 无需任何用户交互即可修改页面
- c++ - 无法使用 NVAPI 启用/禁用 Mosaic
- python - 如何在python中获得一组数组的每个组合