APP--简单的WIFI开发(带密码)

package com.cart.view;
import java.util.List;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.util.Log;
public class NetChoice
{
  
//    String wifiSSID="FORTUNETONE";
    Context context;
    WifiManager wifiManager;
   
//    WifiReceiver wifiReceiver;
    public NetChoice(Context context)
    {
      this.context=context;
      wifiManager=(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//      wifiReceiver=new WifiReceiver();
//      context.registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    }
    
    /**
     * 判断当前网络连接状态
     * 0、无连接
     * 1、3G
     * 2、WIFI
     * @return
     * @author 2011-08-16
     */
    public int checkNetworkInfo()
    {
      int netType=0;
      ConnectivityManager conMan=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
      State mobile=conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
      State wifi=conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
      if (mobile==State.CONNECTED||mobile==State.CONNECTING)
      {
        netType=1;
      }
      
      if (wifi==State.CONNECTED||wifi==State.CONNECTING)
      {
        netType=2;
      }
      Log.d("carWifi", wifi+"---wifi--state--mobile--"+mobile+"---type--"+netType);
      return netType;
    }
    
    
    /**
     * WIFI勾选 开关
     * 
     * @author 2011-08-16
     */
    public void openWifi()
    {
      boolean b=false;
      if (!wifiManager.isWifiEnabled())
      {
        b=wifiManager.setWifiEnabled(true);
        Log.d("carWifi", "---------open wifi --"+b);
      }else {
        Log.d("carWifi", "-----wifi was open!!--");
      }
    }
    
    public void closeWifi()
    {
      if (wifiManager.isWifiEnabled())
      {
        wifiManager.setWifiEnabled(false);
      }
    }
    
    
    /**
     * 添加WIFI信息
     * @param wifiList 搜索到的wifi集合
     * @param wifiSSID wifi名称
     * @param pwd wifi密码
     * @return wifiId
     * @author 2011-08-16
     */
    public int addWifiConfig(List<ScanResult> wifiList,String wifiSSID,String pwd)
    {
      int wifiId=-1;
      if (wifiList!=null)
      {
        for (int i = 0; i < wifiList.size(); i++)
        {
          ScanResult sr = wifiList.get(i);
          if (sr.SSID.equals(wifiSSID))
          {
            WifiConfiguration wc = new WifiConfiguration();
            wc.SSID = "\""+wifiSSID+"\"";
            wc.preSharedKey = "\""+pwd+"\"";
            wifiId=wifiManager.addNetwork(wc);
            if (wifiId!=-1)
            {
              return wifiId;
            }
          }
        }
      }
      
      return wifiId;
    }
    
    
    
    /**
     * 连接wifi
     * @param wifiId
     * @return
     * @author 2011-08-16
     */
    public boolean connectWifi(int wifiId)
    {
      for (int i = 0; i < wifiManager.getConfiguredNetworks().size(); i++)
      {
        WifiConfiguration wc =wifiManager.getConfiguredNetworks().get(i);
        if (wc.networkId==wifiId)
        {
          return wifiManager.enableNetwork(wc.networkId, true);
        }
      }
      
      return false;
    }
    
    
    
    /**
     * 扫描wifi热点
     * @return wifiList
     * @author 2011-08-16
     */
    public List<ScanResult> scanWifi()
    {
//      wifiManager.startScan();
      return wifiManager.getScanResults();
    }
    
    
    
//    class WifiReceiver extends BroadcastReceiver{
//
//      @Override
//      public void onReceive(Context context, Intent intent)
//      {
//        // TODO Auto-generated method stub
//        wifiList=wifiManager.getScanResults();
//      }
//      
//    } 
}
<!-- 以下是使用wifi访问网络所需要的权限--> 

<uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"> 

</uses-permission>  //修改网络状态的权限 

<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"> 

</uses-permission>  //修改wifi状态的权限 

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"> 

</uses-permission>  //访问网络权限 

<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"> 

</uses-permission>   //访问wifi权限 
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"></uses-permission>
posted @ 2011-08-17 18:34  厘米  阅读(1231)  评论(0编辑  收藏  举报