连接到指定wifi——WIFIManager

定义工具类:
public class WifiAdmin {
     // 定义WifiManager对象
     private WifiManager mWifiManager;
     // 定义WifiInfo对象
     private WifiInfo mWifiInfo;
     // 扫描出的网络连接列表,ScanResult主要用来描述已经检测出的接入点,包括介入点的地址,介入点的名称,身份认证,频率,信号强度等信息
     private List<ScanResult> mWifiList;
     // 网络连接列表
     private List<WifiConfiguration> mWifiConfiguration;
     // 定义一个WifiLock
     WifiLock mWifiLock;

     // 构造器
     public WifiAdmin(Context context) {
          // 取得WifiManager对象
          mWifiManager = (WifiManager) context
                    .getSystemService(Context.WIFI_SERVICE);
          // 取得WifiInfo对象
          mWifiInfo = mWifiManager.getConnectionInfo();
     }

     // 打开WIFI
     public void openWifi() {
          if (!mWifiManager.isWifiEnabled()) {
               mWifiManager.setWifiEnabled(true);
               System.out.println("wifi打开成功!");
          }
          // if (mWifiManager.disconnect()) {
          // mWifiManager.setWifiEnabled(true);
          // System.out.println("wifi打开成功!!");
          // }
     }

     // 关闭WIFI
     public void closeWifi() {
          if (mWifiManager.isWifiEnabled()) {
               mWifiManager.setWifiEnabled(false);
          }
     }

     // 检查当前WIFI状态
     public int checkState() {
          return mWifiManager.getWifiState();
     }

     // 锁定WifiLock
     public void acquireWifiLock() {
          mWifiLock.acquire();
     }

     // 解锁WifiLock
     public void releaseWifiLock() {
          // 判断时候锁定
          if (mWifiLock.isHeld()) {
               mWifiLock.acquire();
          }
     }

     // 创建一个WifiLock
     public void creatWifiLock() {
          mWifiLock = mWifiManager.createWifiLock("Test");
     }

     // 得到配置好的网络
     public List<WifiConfiguration> getConfiguration() {
          return mWifiConfiguration;
     }

     // 指定配置好的网络进行连接
     public void connectConfiguration(int index) {
          // 索引大于配置好的网络索引返回
          if (index > mWifiConfiguration.size()) {
               System.out.println("连接失败!");
               return;
          }
          // 连接配置好的指定ID的网络
          mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,
                    true);
          System.out.println(index + "连接成功!");
     }

     public void startScan() {
          mWifiManager.startScan();
          // 得到扫描结果
          mWifiList = mWifiManager.getScanResults();
          // 得到配置好的网络连接
          mWifiConfiguration = mWifiManager.getConfiguredNetworks();
     }

     // 得到网络列表
     public List<ScanResult> getWifiList() {


使用:
public class TestActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
          // 测试activity
          super.onCreate(savedInstanceState);
          // setContentView(R.layout.show_value);
          WifiAdmin wifiAdmin = new WifiAdmin(TestActivity.this);
          wifiAdmin.openWifi();
          //需要连接的网络信息,类型1表示密码为空
          WifiConfiguration wcg=wifiAdmin.CreateWifiInfo("wifi name", "", 1);
          //加入配置的网络
          wifiAdmin.addNetwork(wcg);
     }
}

WIFI信息获取:
    /**
     * 获取WIFI信息
     */
    private String getInfo()
    {
        WifiManager wifi = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifi.getConnectionInfo();
        String maxText = info.getMacAddress();
        String ipText = intToIp(info.getIpAddress());
        String status = "";
        if (wifi.getWifiState() == WifiManager.WIFI_STATE_ENABLED)
        {
            status = "WIFI_STATE_ENABLED";
        }
        String ssid = info.getSSID();
        int networkID = info.getNetworkId();
        int speed = info.getLinkSpeed();
        return "mac:" + maxText + "\n\r"
                + "ip:" + ipText + "\n\r"
                + "wifi status :" + status + "\n\r"
                + "ssid :" + ssid + "\n\r"
                + "net work id :" + networkID + "\n\r"
                + "connection speed:" + speed + "\n\r"
                ;
    }
    private String intToIp(int ip)
    {
        return (ip & 0xFF) + "." + ((ip >> 8) & 0xFF) + "." + ((ip >> 16) & 0xFF) + "."
                + ((ip >> 24) & 0xFF);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值