HTC Android Hotspot 熱點配置 之DHCP

來源:互聯網
上載者:User

研究了下通過手動設定HTC的WiFi熱點程式 com.htc.WiFiRouter 裡面有一個Local DHCP的配置,把它勾上就能自動擷取IP。 但要怎麼樣用代碼實現呢這下坑爹了。  研究了半天,還是只有把HTC專屬的類給它全部dump出來,代碼如下  [java] public void dumpHTCWifiFunction2(){           Log.e(TAG, "dumpHTCWifiFunction2++");  //      Method[] classMethods = null;          Field localField1;                    Field[] fieldlist;          WifiConfiguration apConfig = new WifiConfiguration();          try {              localField1 = WifiConfiguration.class.getDeclaredField("mWifiApProfile");                localField1.setAccessible(true);                    Object localObject2 = localField1.get(apConfig);                    localField1.setAccessible(false);                                    if(localObject2!=null){                      fieldlist = localObject2.getClass().getDeclaredFields();                                            for (int i = 0;i < fieldlist.length; i++)                        {                            Log.e(TAG, "found api: "+ fieldlist[i].getName());                        }                  }                                              } catch (NoSuchFieldException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (IllegalArgumentException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (IllegalAccessException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }            Log.e(TAG, "dumpHTCWifiFunction2--");      }   12-28 11:06:29.956: E/MainActivity(3253): dumpHTCWifiFunction2++12-28 11:06:29.966: E/MainActivity(3253): found api: DEFAULT_DHCP_MAX_AP_CONNECTION12-28 11:06:29.966: E/MainActivity(3253): found api: DEFAULT_MAX_AP_CONNECTION12-28 11:06:29.976: E/MainActivity(3253): found api: DHCP_MAX_AP_CONNECTION12-28 11:06:29.976: E/MainActivity(3253): found api: MAX_AP_CONNECTION12-28 11:06:29.976: E/MainActivity(3253): found api: OPEN12-28 11:06:29.976: E/MainActivity(3253): found api: WEP12-28 11:06:29.986: E/MainActivity(3253): found api: WPA12-28 11:06:29.986: E/MainActivity(3253): found api: WPA212-28 11:06:29.986: E/MainActivity(3253): found api: BSSID12-28 11:06:29.996: E/MainActivity(3253): found api: SSID12-28 11:06:29.996: E/MainActivity(3253): found api: blocklist12-28 11:06:29.996: E/MainActivity(3253): found api: whitelist12-28 11:06:29.996: E/MainActivity(3253): found api: this$012-28 11:06:30.006: E/MainActivity(3253): found api: startingIP12-28 11:06:30.006: E/MainActivity(3253): found api: dhcpSubnetMask12-28 11:06:30.016: E/MainActivity(3253): found api: dnsIPAddr112-28 11:06:30.016: E/MainActivity(3253): found api: dnsIPAddr212-28 11:06:30.016: E/MainActivity(3253): found api: secureType12-28 11:06:30.016: E/MainActivity(3253): found api: key12-28 11:06:30.016: E/MainActivity(3253): found api: ipAddress12-28 11:06:30.016: E/MainActivity(3253): found api: hiddenSSID12-28 11:06:30.016: E/MainActivity(3253): found api: maxConns12-28 11:06:30.016: E/MainActivity(3253): found api: maxDhcpClients12-28 11:06:30.026: E/MainActivity(3253): found api: enableMacFilter12-28 11:06:30.026: E/MainActivity(3253): found api: sleepPolicy12-28 11:06:30.026: E/MainActivity(3253): found api: dhcpEnable12-28 11:06:30.026: E/MainActivity(3253): found api: connectionArray12-28 11:06:30.026: E/MainActivity(3253): found api: channel12-28 11:06:30.026: E/MainActivity(3253): dumpHTCWifiFunction2-- 發現了 dhcpEnable 這個成員變數,剛開始猜它是boolean變數,但錯了,在設定的時候會發生錯誤。 乾脆把它的類型也列印出來吧,列印語句改為: Log.e(TAG, "found api: "+ fieldlist[i].getName()+" type:"+fieldlist[i].toString());  found api: dhcpEnable type:public int android.net.wifi.WifiConfiguration$HotspotProfile.dhcpEnable 原來它是int型變數,估且猜它是1為enable. 設定之後,果然可以。  完整代碼如下: [java] private boolean setWifiSSIDForHTC(WifiConfiguration apConfig) {          boolean successed = true;            //      WifiConfiguration mnetConfig = new WifiConfiguration();          Field localField1;                            try {                                localField1 = WifiConfiguration.class.getDeclaredField("mWifiApProfile");                                localField1.setAccessible(true);                                Object localObject2 = localField1.get(apConfig);                                localField1.setAccessible(false);                              if(localObject2!=null){                                    Field localField5 = localObject2.getClass().getDeclaredField("SSID");                                    localField5.setAccessible(true);                                    localField5.set(localObject2, apConfig.SSID);// netConfig.SSID);                                    localField5.setAccessible(false);                                    Field localField4 = localObject2.getClass().getDeclaredField("BSSID");                                    localField4.setAccessible(true);                                    localField4.set(localObject2, apConfig.BSSID);//netConfig.BSSID);                                    localField4.setAccessible(false);                                                                    Field localField6 = localObject2.getClass().getDeclaredField("dhcpEnable");                                    localField6.setAccessible(true);    //                                localField6.set(localObject2, "true");//netConfig.BSSID);                                  localField6.setInt(localObject2, 1);                                    localField6.setAccessible(false);                                }                            } catch(Exception e) {                                e.printStackTrace();                            }          return successed;      }   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.