gpt4 book ai didi

android - 如何以编程方式修改 Android Pie 9.0 中的 AOSP SystemUI?

转载 作者:行者123 更新时间:2023-11-29 23:02:04 26 4
gpt4 key购买 nike

如何在 Android Pie AOSP 中修改状态栏?我想添加一些自定义图标以及电池、网络信号等现有图标。我还想知道我必须编辑哪些文件才能以编程方式添加和删除快速设置图 block 。

  1. 认为默认情况下没有快速设置磁贴,如何以编程方式仅添加 wifi、蓝牙和 gps 快速设置磁贴?
  2. 如何在各自的磁贴中为 wifi 和蓝牙设置添加扩展布局,以便在点击磁贴时显示现有的 wifi 网络和蓝牙设备?
  3. 获取 wifi 网络和蓝牙设备列表的代码在哪里?
  4. 我如何实现回调,以便在我打开 wifi 并连接到网络时,状态栏中的 wifi 图标变得可见?如果我希望状态栏中的自定义图标具有相同的行为,我该如何继续?

最佳答案

鉴于您的问题,我认为您是在谈论“快速设置”图 block 。要创建快速设置磁贴,您的类必须扩展 TileService: public class HSTileService extends TileService .TileService 有几个必须实现的方法: public void onClick() , public void onTileRemoved() , public void onTileAdded() , public void onStartListening() , 和 public void onStopListening() .

onStartListening当图 block 出现时调用,并且 onStopListening当它离开 View 时被调用。所有这些方法都必须调用 super.<method_name>作为他们的第一个 Action 。

要获取您操纵以更改图 block 状态的 QSTile 对象,请使用 Tile tile = getQsTile();要设置状态,请使用 tile.setState() ,这需要 Tile.STATE_ACTIVE , Tile.STATE_INACTIVE , 或 Tile.STATE_DISABLED作为论据。更改磁贴状态后,确保调用 tile.updateTile()否则不会更新。

要获取图 block 状态,请使用 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

关于android - 如何以编程方式修改 Android Pie 9.0 中的 AOSP SystemUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56858950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com