xw75814 发表于 2015-9-30 12:26:15

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>
页: [1]
查看完整版本: APP--简单的WIFI开发(带密码)