笔记本电脑的Android wifi连接问题?

时间:2012-08-08 07:15:19

标签: android wifi

我正在开发一个需要与我的系统连接的应用程序我通过使用netsh wlan设置托管网络ssid =“”将我的系统转为无线接入点但是我无法在我的机器人中获取此wlan AP的IP地址应用。这是我正在使用的代码...

 wifimanager=(WifiManager)getSystemService(Context.WIFI_SERVICE)
List<WifiConfiguration> configs = wifimanager.getConfiguredNetworks();
        for (WifiConfiguration config : configs) {
        Log.d("Scanner","Configured Networks" + config.toString());
        }

        wifimanager.startScan();
        List<ScanResult>list=wifimanager.getScanResults();
        if(list != null && !list.isEmpty()){
        for(ScanResult hotspot:list)
        {

            scanresult.add(hotspot.SSID);
            Log.d("Scanner","Found"+scanresult);



        }
        String message=String.format("%s network Found",list.size());
        Toast msg=Toast.makeText(getApplicationContext(), message, 6);
                msg.show();
    }

        else
        {
            Log.i("Scan","NUll");
            Toast msg=Toast.makeText(getApplicationContext(), "No Networks  found", 6);
            msg.show();
        }
        Log.d("Scanner","Network Interface section..");
         try {   
             for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
             {           
                 NetworkInterface intf = en.nextElement();                 
                 for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses();
                         enumIpAddr.hasMoreElements();)
                 {                   
                     InetAddress inetAddress = enumIpAddr.nextElement();
                     if (!inetAddress.isLoopbackAddress())
                     {                       
                         //Toast.makeText(wifiDemo, TAG + "IP " + inetAddress.getHostAddress().toString(), Toast.LENGTH_LONG).show();
                         Log.d("Scanner","IP Fromnetwork interface"+inetAddress.getHostAddress().toString());
                     }             
                     }          
                 }      
             } catch (SocketException e)
             {              e.printStackTrace();       
             }    


    final String[]wifiap=scanresult.toArray(new String[scanresult.size()]);
    ArrayAdapter<String>adapter=new ArrayAdapter<String>(getApplicationContext(),R.layout.scanresult,wifiap);
    setListAdapter(adapter);
    ListView listview=getListView();
    listview.setTextFilterEnabled(false);
    listview.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Toast.makeText(getApplicationContext(), parent.getItemAtPosition(position).toString(),
    Toast.LENGTH_SHORT).show();
    String sid=parent.getItemAtPosition(position).toString();
    Log.i("SSID","Value.."+sid);
    WifiConfiguration conf=new WifiConfiguration();
    conf.SSID="\""+sid+"\"";
    conf.priority=1;
    conf.status=WifiConfiguration.Status.ENABLED;
    conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
    boolean wifion=wifimanager.setWifiEnabled(true);
    int res=wifimanager.addNetwork(conf);
    boolean enable=wifimanager.enableNetwork(res, true);
    if(res<0)
    {
    Log.d("Scanner","Unable to add configuration for network.."+sid);
    }
       else
       {
           Log.d("Scanner","Network  Configured.."+res);
       }

    WifiInfo wifiInfo = wifimanager.getConnectionInfo();
    int ipaddress= wifiInfo.getIpAddress(); 
    String ip=String.format("%d.%d.%d.%d", (ipaddress & 0xff),(ipaddress >> 8 & 0xff),(ipaddress >> 16 & 0xff),(ipaddress >> 24 & 0xff));
    Log.d("Scanner","IPAddress"+ip);
    Log.d("Scanner","Connection Info...."+wifimanager.getConnectionInfo()); 

       boolean pingstatus=wifimanager.pingSupplicant();
       Log.d("Scanner","Ping results.."+pingstatus);
       ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
       NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

       if(mWifi.isConnected())
       {
           Log.d("Scanner","Connection established");

       }
       if(mWifi.isAvailable()){
           Log.d("Scanner","Network Available...");
       }
       else
       {
           Log.d("Scanner","Network not available..");
       }
       String reasn=mWifi.getReason();
       Log.d("Scanner","Reason"+reasn);
        SupplicantState supState;


       supState = wifiInfo.getSupplicantState();
       Log.d("Scanner","Supplicant state...>"+supState);


       Log.d("Scanner", "MAC Address"+wifiInfo.getMacAddress());



       if(enable)
       {
      Toast status=Toast.makeText(getApplicationContext(), "Connected to"+sid,4);
        status.show();

         Log.d("Scanner","DHCP info.."+wifimanager.getDhcpInfo());   


         Log.d("Scanner","Connected to-->"+sid);           
        /* Intent dbintent= new Intent(getApplicationContext(),dbconnection.class);
          dbintent.putExtra("ssid",sid);
          startActivity(dbintent);*/                                 
       }
       else
       {
           Toast status=Toast.makeText(getApplicationContext(), "Can Not Connect to"+sid,4);
           status.show();

       }

        }
      });

    }

}

0 个答案:

没有答案