2013-03-05 10 views
6

Cihazımda belirli bir SSID ile programlı olarak taşınabilir bir hotspot oluşturdum. Şimdi ona başka bir cihazdan bağlanmak istiyorum!Taşınabilir bir erişim noktasında bir android aygıta program aracılığıyla bağlanma

WifiConfiguration conf = new WifiConfiguration(); 
    conf.SSID = "\"" + "TinyBox" + "\""; 
    conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 
    WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
    wifiManager.addNetwork(conf); 

    List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
    for(WifiConfiguration i : list) { 
     if(i.SSID != null && i.SSID.equals("\"" + "TinyBox" + "\"")) { 
      wifiManager.disconnect(); 
      wifiManager.enableNetwork(i.networkId, true); 
      wifiManager.reconnect();    
      break; 
     }   
    } 

Ama hiçbir şey olmaz: Bu kodu kullanıyorum. Hata nerede? Teşekkürler

cevap

8

Çocuklar bu sorunu buldum! SSID, "" tırnakları nedeniyle yanlıştı. Aşağıdaki kod ile açık taşınabilir hotspot oluşturmak Yani (Ben net bir yere götürdü):

WifiConfiguration conf = new WifiConfiguration(); 
    conf.SSID = "\"\"" + "TinyBox" + "\"\""; 
    conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 
    WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
    wifiManager.addNetwork(conf); 

    List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
    for(WifiConfiguration i : list) { 
     if(i.SSID != null && i.SSID.equals("\"\"" + "TinyBox" + "\"\"")) { 
      try { 
       wifiManager.disconnect(); 
       wifiManager.enableNetwork(i.networkId, true); 
       System.out.print("i.networkId " + i.networkId + "\n"); 
       wifiManager.reconnect();    
       break; 
      } 
      catch (Exception e) { 
       e.printStackTrace(); 
      } 

     }   
    } 
+0

böyle tırnak iki kez katacak:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if(wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(false); } Method[] wmMethods = wifiManager.getClass().getDeclaredMethods(); //Get all declared methods in WifiManager class boolean methodFound=false; for(Method method: wmMethods){ if(method.getName().equals("setWifiApEnabled")){ methodFound=true; WifiConfiguration netConfig = new WifiConfiguration(); netConfig.SSID = "\""+"TinyBox"+"\""; netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); try { boolean apstatus=(Boolean) method.invoke(wifiManager, netConfig,true); for (Method isWifiApEnabledmethod: wmMethods) { if(isWifiApEnabledmethod.getName().equals("isWifiApEnabled")){ while(!(Boolean)isWifiApEnabledmethod.invoke(wifiManager)){ }; for(Method method1: wmMethods){ if(method1.getName().equals("getWifiApState")){ int apstate; apstate=(Integer)method1.invoke(wifiManager); } } } } if(apstatus) { System.out.println("SUCCESSdddd"); }else { System.out.println("FAILED"); } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } 

kullanarak kendisine bağlamak gerekir "" "Tinybox" ", bu, –

+0

için doğru yöntemdir (her zaman için" (WifiConfiguration i: list) "için ayrılır." Sorun ne olabilir? (newbe) –

+0

@phcaze Şifre vermek mümkün mü? – Roster