Android wifi简单问题

ZFZF294990051 2011-11-22 05:05:55
下面是我的代码
private void test()
{


if(mWifiManager.isWifiEnabled()==false)
{
System.out.println("打开wifi...");
if(OpenWifi())
{
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else{
showInfo("wifi已打开");
}

if (mWifiManager.startScan()) //扫描可用的无线网络
{
List<ScanResult> scanResultList = mWifiManager.getScanResults();
for (int i = 0; i < scanResultList.size(); i++)
{
ScanResult scanRet = scanResultList.get(i);
if (scanRet.SSID.equalsIgnoreCase(wifi_siid)) //找到需要的网络
{
System.out.println("配置网络...");
mWifiConfiguration=new WifiConfiguration();
mWifiConfiguration.SSID= "\""+wifi_siid+ "\"";
mWifiConfiguration.preSharedKey="\""+wifi_password+"\"";
mWifiConfiguration.SSID="\"fjq\"";
mWifiConfiguration.preSharedKey="\"zjuttxz321\"";
mWifiConfiguration.hiddenSSID=false;
mWifiConfiguration.status=WifiConfiguration.Status.ENABLED;
mWifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
// mWifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
mWifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
mWifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
mWifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

netId=mWifiManager.addNetwork(mWifiConfiguration);
Log.v(Tag,"******************id= ******************"+netId);
if(netId==-1){
showInfo("wifi添加失败!");
return;
}

//mWifiManager.saveConfiguration();
//mWifiManager.updateNetwork(mWifiConfiguration);
boolean b=mWifiManager.enableNetwork(netId, true);//该函数返回值为true了,但为什么连接不上去呢?

Log.v(Tag,"b= "+b);
if(b){
System.out.println("wifi连接成功!");
showInfo("当前连接信息:");
wifiInfo=mWifiManager.getConnectionInfo();
showInfo(wifiInfo.toString());
}else{
showInfo("wifi连接失败!");
}
break;
}
if(i==scanResultList.size()-1){
showInfo("没有查询到指定网络!");
System.out.println("没有查询到指定网络!");
return ;
}

}
}


wifi一直连不上去。mWifiManager.addNetwork已经成功把配置信息添加到wifi列表中去了,这个在settings中可以查找到。mWifiManager.enableNetwork(netId, true);//该函数返回值为true了,但为什么连接不上去呢? 这个函数是异步调用的,返回true后连接不上去? 配置信息应该没有错误,我都是根据能连上去的那个配置进行配置的。

用logcat输出如下信息:
I/System.out( 2850): 配置网络...
I/wpa_supplicant( 262): wpa_config_parse_psk: passphrase 0x75100 zjuttxz321
D/WifiService( 147): need reconfig //根据这个信息,可能是配置错了,但不知道这句是哪里输出来的,一直没找到。
V/WiFiTestActivity( 2850): id= 3
I/wpa_supplicant( 262): CTRL-EVENT-STATE-CHANGE id=2 state=0 BSSID=00:00:00:00:00:00
V/WifiMonitor( 147): Event [CTRL-EVENT-STATE-CHANGE id=2 state=0 BSSID=00:00:00:00:00:00]
V/WifiStateTracker( 147): Changing supplicant state: SCANNING ==> DISCONNECTED
V/WiFiTestActivity( 2850): b= true
I/System.out( 2850): wifi连接成功!
I/wpa_supplicant( 262): CTRL-EVENT-STATE-CHANGE id=-1 state=2 BSSID=00:00:00:00:00:00
V/WifiMonitor( 147): Event [CTRL-EVENT-STATE-CHANGE id=-1 state=2 BSSID=00:00:00:00:00:00]
V/WifiStateTracker( 147): Changing supplicant state: DISCONNECTED ==> SCANNING
I/System.out( 2850): 3
I/System.out( 2850): wifi enable
I/System.out( 2850): 网络连接成功!

D/WifiService( 147): need reconfig //根据这个信息,可能是配置错了,但不知道这句是哪里输出来的,一直没找到。

请那位帮帮我找找问题?谢谢。
...全文
207 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZFZF294990051 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yiyaaixuexi 的回复:]

终端ping结果怎么样
dns或者udhcpc情况怎么样
[/Quote]

你好。终端调用mWifiManager.pingSupplicant()也是成功的。
念茜 2011-11-22
  • 打赏
  • 举报
回复
终端ping结果怎么样
dns或者udhcpc情况怎么样
ZFZF294990051 2011-11-22
  • 打赏
  • 举报
回复
呵呵,自己再定一个
ZFZF294990051 2011-11-22
  • 打赏
  • 举报
回复
mWifiConfiguration.SSID= "\""+wifi_siid+ "\"";
mWifiConfiguration.preSharedKey="\""+wifi_password+"\"";
上面这两句忘记注释了,但不影响代码执行。。

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧