Android SystemUI 初探

标题1

代码路径

/Android工程根目录/frameworks/base/packages/SystemUI/

修改需求

最近由于工作需要要对Android界面UI进行一些定制(主要是禁用WLAN和蓝牙功能),在Settings.apk我已经我通过去掉显示功能禁用了WLAN和蓝牙功能,但发现在系统界面的下拉菜单中发现有蓝牙和WLAN的快速设置组件(quick settings)。因此要对这个快捷按键进行修改。

代码修改

由于只要禁用WLAN和蓝牙功能,我就不进行过于复杂的修改,只针对需求进行组件的删除。

在/SystemUI/src/com/android/systemui/quicksettings/目录下可以很容易看到系统预定好的下拉菜单中快键方式的组件,所有的组件都是
QuickSettingsTile的子类。

不过这里只是这些组件的定义的代码,添加组件在其他位置,但是知道了这些组件的名称,很容易可以找到这些组件被引用的位置。

src/com/android/systemui/statusbar/phone/QuickSettingsController.java
我找到了添加这些组件的入口:setupQuickSettings

 void loadTiles() {

    boolean bluetoothSupported = QSUtils.deviceSupportsBluetooth();
    boolean mobileDataSupported = QSUtils.deviceSupportsMobileData(mContext);
    boolean gpsSupported = QSUtils.deviceSupportsGps(mContext);


     if (!bluetoothSupported) {
        TILES_DEFAULT.remove(TILE_BLUETOOTH);
    }

    if (!mobileDataSupported) {
        TILES_DEFAULT.remove(TILE_MOBILEDATA);
    }

    if (!gpsSupported) {
        TILES_DEFAULT.remove(TILE_GPS);
    }

    ………………
}

这里通过TILES_DEFAULT.remove方法就可以从QuickSetting中删除相应的组件。
不过我所做的删除的操作都只是消除了可视化的操作按钮,如果需要从系统中禁用这些功能,
在framework或native中还需要更深层次的定制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值