2012-04-04 4 views
5

की उन्नत सेटिंग्स निर्धारित करने की मैं निम्नलिखित कोड से चालू होता पोर्टेबल WiFi हॉटस्पॉट मोड़ कर रहा हूँ:कैसे एंड्रॉयड wifihotspot

private void createWifiAccessPoint() { 
    WifiManager wifiManager = (WifiManager)getBaseContext().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.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); 
      netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
      netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA); 
      netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
      netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
      netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
      netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
      netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
      try { 
       boolean apstatus=(Boolean) method.invoke(wifiManager, netConfig,true);   
       //statusView.setText("Creating a Wi-Fi Network \""+netConfig.SSID+"\""); 
       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); 
           //     netConfig=(WifiConfiguration)method1.invoke(wifi); 
           //statusView.append("\nSSID:"+netConfig.SSID+"\nPassword:"+netConfig.preSharedKey+"\n"); 
          } 
         } 
        } 
       } 
       if(apstatus) 
       { 
        System.out.println("SUCCESSdddd"); 
        //statusView.append("\nAccess Point Created!"); 
        //finish(); 
        //Intent searchSensorsIntent = new Intent(this,SearchSensors.class);    
        //startActivity(searchSensorsIntent); 
       }else 
       { 
        System.out.println("FAILED"); 
        //statusView.append("\nAccess Point Creation failed!"); 
       } 
      } catch (IllegalArgumentException e) { 
       e.printStackTrace(); 
      } catch (IllegalAccessException e) { 
       e.printStackTrace(); 
      } catch (InvocationTargetException e) { 
       e.printStackTrace(); 
      } 
     }  
    } 
    if(!methodFound){ 
     //statusView.setText("Your phone's API does not contain setWifiApEnabled method to configure an access point"); 
    } 
} 

यह मेरे लिए काम करता है ....... हॉटस्पॉट चालू हो जाती है ...... लेकिन 'मेनू' बटन पर क्लिक करके उन्नत सेटिंग्स भी हैं .... और यहां एक समस्या है ... LanSettings में पावर मोड अक्षम हो गया है और पावर मोड केवल 5 मिनट काम कर रहा है .... मैं चाहता हूं कि डीएचसीपी टीटीए सक्षम हो और पावरमोड - "हमेशा चालू" ... मैं इसे कैसे हल कर सकता हूं?

+0

मेरे पास एक एचटीसी फोन 2.3.5 चल रहा है पर एक ही समस्या है। क्या आपको एक समाधान मिला? – Andy

उत्तर

1

आपको इसका उत्तर खोजने के लिए एंड्रॉइड स्रोत कोड देखना पड़ सकता है। आपके कोड के साथ एक डिवाइस कनेक्ट करने और आईपी पता पाने में सक्षम है? यदि ऐसा है तो एपी के लिए डीएचसीपी काम कर रहा है।

व्यक्तिगत रूप से मेरे पास एक डीएचसीपी सक्षम या अक्षम विकल्प या आईसीएस पर पावरमोड भी नहीं है।