比如无线网络设置里,我在飞行模式code中怎么获得wificheckbox的状态,也就是我想在飞行模式中得到wifi这项是灰的不能选还是亮的能选的状态

解决方案 »

  1.   

    检测是否有wifi可用:
    mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    if (mWifiManager != null) {
                        List<ScanResult> wifiScanResults = mWifiManager.getScanResults();
                        if (wifiScanResults != null && wifiScanResults.size() != 0) {
                            
                        }
                    }
    mWifiManager == null即wifi无效,不可用。android wifi 开关代码
    private WifiManager mWm;
    mWm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
    if (mWm.isWifiEnabled()) {
        mWm.setWifiEnabled(false);
        txt.setText("Wifi OFF");
    }
    else {
        mWm.setWifiEnabled(true);
        txt.setText("Wifi ON");
    }Manifest中要声明如下权限:
               <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
            <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> 
      

  2.   

    哥,我试过了,你给的代码好像是确认wifi是否能搜到网络,我搜不到,这里一直显示false...不变成true,我后面的checkbox的状态都不会变了,我只是想让它检测到wifi的那个选项从disenalber,变成enabler,就是从灰变亮CheckBoxPreference
      

  3.   

    大概意思是不是这样:
    private CheckBoxPreference mCheckBoxPreference=(CheckBoxPreference)findPrefereces(你的CheckBoxPreferenceID);
    private WifiManager mWm;
    mWm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
    if (mWm.isWifiEnabled()) {
        mCheckBoxPreference.setEnabled(true);
    }
    else {
        mCheckBoxPreference.setEnabled(false);
    }
    楼主可以查下android sdk里面有CheckBoxPreference的方法介绍。
      

  4.   

    谢谢5楼,我试过这个方法,我import了PreferenceActivity,但是不能够用findPrefereces这个方法,我主要是要得到WifiCheckBoxPreference的状态,也就是
    if (WifiCheckBoxPreference.isEnabled()) {
      mCheckBoxPreference.setEnabled(true);
    }
    else {
      mCheckBoxPreference.setEnabled(false);
    }
    不过这个问题已经用其它方法解决了,很感谢你的回答