过滤Android系统设置中Wifi

因项目需要,对机顶盒做了不同配置的版本,低配版Wifi模组不支持5.8G的Wifi,所以需要把系统设置中的Wifi列表中的5.8G显示信息屏蔽掉。

信号参数(WorldWide Available)

2.4G信号:
   Frequency range:2.400G—-2.500GHz,即(2400MHz—–2500MHz),
   Bandwidth:100MHz,
   Center Frequency: 2.450GHz
5.8G信号:
   Frequency range:5.725G—-5.800GHz,即(5725MHz—–5800MHz),
   Bandwidth:100MHz,
   Center Frequency: 5.800GHz

怎么修改

通过跟踪系统设置的代码发现,要想过滤显示的Wifi热点,可以在WifiSettings.java中处理;不过很快你会发现,在AccessPoint中,并没有关于frequency的信息。所以,需要先对AccessPoint.java中定义相应的属性:

路径在\packages\apps\Settings\src\com\android\settings\wifi\AccessPoint.java:

    //add by dq begin
    private int frequency;

    public int getFrequency() {
        return frequency;
    }
    public void setFrequency(int frequency) {
        this.frequency = frequency;
    }
    //add by dq end
    ......

    private void loadResult(ScanResult result) {
        ssid = result.SSID;
        bssid = result.BSSID;
        security = getSecurity(result);
        wpsAvailable = security != SECURITY_EAP && result.capabilities.contains("WPS");
        if (security == SECURITY_PSK)
            pskType = getPskType(result);
        networkId = -1;
        mRssi = result.level;
        mScanResult = result;
        setFrequency(result.frequency);//add by dq
    }

接着,需要在WifiSettings.java中去做处理:

private void updateAccessPoints() {
  ....
  switch (wifiState) {
    case WifiManager.WIFI_STATE_ENABLED:
        for (AccessPoint accessPoint : accessPoints) {
           //add by dq begain to omit 5.8G wifi.    
           Log.d(TAG,"wifi ap   frequency:"
                       +accessPoint.getFrequency());
         int frequency = accessPoint.getFrequency();
         if(frequency >= 5725 && frequency <= 5800) {
               continue;
         }
         //add by dq end.
         getPreferenceScreen().addPreference(accessPoint);                
       }
    break;
}

源码中编译以后,5.8G的信号就从列表中屏蔽了。
2015.3.31

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值