|
随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。
  
转自:http://blog.csdn.net/yangwen123/article/details/9996359
版权声明:本文为博主原创文章,未经博主允许不得转载。
WIFI自动打开并连接到指定的热点:
[java] view plain copy
- do {
- try {
- //连接到指定的wifi热点
- mAdmin.connectWifi(SSID, PWD, WifiCipherType.WIFICIPHER_WPA);
- Thread.sleep(20 * 1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- Log.i(TAG, "connect wifi failed. please open wifi !");
- break;
- }
- } while (!mAdmin.isWifiConnect()); //判断wifi是否连接成功
连接指定wifi热点
[java] view plain copy
- public void connectWifi(String SSID, String Password, WifiCipherType Type) {
- //打开wifi
- if (!this.openWifi()) {
- return;
- }
- //等到wifi状态变成WIFI_STATE_ENABLED的时候才能执行下面的语句
- while (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING) {
- try {
- // 为了避免程序一直while循环,让它睡个100毫秒在检测……
- Thread.currentThread();
- Thread.sleep(100);
- } catch (InterruptedException ie) {
- }
- }
- //判断是否已配置过当前热点
- WifiConfiguration config = IsConfig(SSID);
- if (config == null) {
- //创建一个当前连接的wifi热点
- config = CreateWifiInfo(SSID, Password, Type);
- }else {
- mWifiManager.removeNetwork(config.networkId);
- }
-
- WifiManager.Channel mChannel = mWifiManager.initialize(mContext, mContext.getMainLooper(), null);
- mWifiManager.connect(mChannel, config, null);
- }
判断是否已经配置过当前wifi热点
[java] } else { return null; } return config; }
打开或关闭wifi连接
[java] view plain copy
- // 打开WIFI
- public boolean openWifi() {
- boolean bRet = true;
- if (!mWifiManager.isWifiEnabled()) {
- bRet = mWifiManager.setWifiEnabled(true);
- }
- return bRet;
- }
-
- // 关闭WIFI
- public void closeWifi() {
- if (mWifiManager.isWifiEnabled()) {
- mWifiManager.setWifiEnabled(false);
- }
- }
判断wifi是否成功连接
[java] view plain copy
- public boolean isWifiConnect() {
- ConnectivityManager mConnectivityManager = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo mWifi = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
- return mWifi.isConnected();
- }
|