忘了贴一个方法了// wifi添加一个网络并连接
public void addNetwork(WifiConfiguration wcg) {
int wcgID = mWifiManager.addNetwork(wcg);
boolean b = mWifiManager.enableNetwork(wcgID, true);
System.out.println("a--" + wcgID);
System.out.println("b--" + b);
}
public void addNetwork(WifiConfiguration wcg) {
int wcgID = mWifiManager.addNetwork(wcg);
boolean b = mWifiManager.enableNetwork(wcgID, true);
System.out.println("a--" + wcgID);
System.out.println("b--" + b);
}
open.addNetwork(open.CreateWifiInfo("Test", "lijiande", 3));
不能这样写吧,因为openWifi只是打开了wifi,但wifi打开是需要一段时间的,在addNetwork函数应该是在wifi已打开的情况下调用才行
应该注册一个广播用来接收wifi状态改变,在wifi打开后,再调用addNetwork
class wifiStateReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
Bundle bundle = intent.getExtras();
int newInt = bundle.getInt("wifi_state");
if( newInt==WifiManager.WIFI_STATE_ENABLED) {
Open open=new Open(c);
open.addNetwork(open.CreateWifiInfo("Test", "lijiande", 3));
}
}
}
while(true)
{
int a=open.wifiIsOpen(wm);
if(a==3)
{
open.addNetwork(open.CreateWifiInfo("Test", "lijiande", 3));
break;
}
}
//检测wifi是否开启 0 网卡正在关闭 1 网卡不可用 2 网卡正在打开 3 WIFI网卡可用 4 未知网卡状态
public int wifiIsOpen(WifiManager wm)
{
return wm.getWifiState();
}