HTC 通过 WifiConfiguration 修改 SSID

复制代码
http://www.dewen.org/q/5419

public
void setHTCSSID(WifiConfiguration config, String ssid){ Field localField1; try { localField1 = WifiConfiguration.class.getDeclaredField("mWifiApProfile"); localField1.setAccessible(true); Object localObject2 = localField1.get(config); localField1.setAccessible(false); if(localObject2!=null){ Field localField5 = localObject2.getClass().getDeclaredField("SSID"); localField5.setAccessible(true); localField5.set(localObject2, ssid); localField5.setAccessible(false); } } catch(Exception e) { e.printStackTrace(); } }
复制代码

http://blog.sina.com.cn/s/blog_53dd443a010109i8.html

mnetConfig = new Wificonfiguration();
….
Field localField1;
                try {
                    localField1 = WifiConfiguration.class.getDeclaredField("mWifiApProfile");
                    localField1.setAccessible(true);
                    Object localObject2 = localField1.get(mnetConfig);
                    localField1.setAccessible(false);
                    
                    if(localObject2!=null){
                        Field localField5 = localObject2.getClass().getDeclaredField("SSID");
                        localField5.setAccessible(true);
                        localField5.set(localObject2, netConfig.SSID);
                        localField5.setAccessible(false);
                        
                        Field localField4 = localObject2.getClass().getDeclaredField("BSSID");
                        localField4.setAccessible(true);
                        localField4.set(localObject2, netConfig.BSSID);
                        localField4.setAccessible(false);
                    }
                } catch(Exception e) {
                    e.printStackTrace();
                }

  HTC Android Hotspot 热点配置 之DHCP

 

最近在研究手机热点的建立。HTC手机比较坑爹,首先一个,是不能按常规的办法修改 SSID, BSSID,

在网上搜了下,有篇博客把这个问题解决了,请参考:http://blog.sina.com.cn/s/blog_adc221ac01011mrs.html

 

复制代码
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;
    }
复制代码

 

 

复制代码
  // 解决HTC热点设置问题
                try {
                        Field localField1 = WifiConfiguration.class
                                        .getDeclaredField("mWifiApProfile");
                        localField1.setAccessible(true);
                        Object localObject2 = localField1.get(config);
                        localField1.setAccessible(false);
                        if (localObject2 != null) {
                                // SSID设置
                                Field localField5 = localObject2.getClass().getDeclaredField(
                                                "SSID");
                                localField5.setAccessible(true);
                                localField5.set(localObject2, config.SSID);
                                localField5.setAccessible(false);
                                // IP地址设置
                                Field localField4 = localObject2.getClass().getDeclaredField(
                                                "ipAddress");
                                localField4.setAccessible(true);
                                localField4.set(localObject2, "192.168.1.1");
                                localField4.setAccessible(false);

                                // 子网掩码设置
                                Field localField6 = localObject2.getClass().getDeclaredField(
                                                "dhcpSubnetMask");
                                localField6.setAccessible(true);
                                localField6.set(localObject2, "255.255.255.0");
                                localField6.setAccessible(false);

                                // 安全类型设置
                                Field localField2 = localObject2.getClass().getDeclaredField(
                                                "secureType");
                                localField2.setAccessible(true);
                                if (appwd.equals("")) {
                                        localField2.set(localObject2, "open");
                                } else {
                                        localField2.set(localObject2, "wpa2-psk");
                                }
                                localField2.setAccessible(false);

                                // 密码设置
                                Field localField3 = localObject2.getClass().getDeclaredField(
                                                "key");
                                localField3.setAccessible(true);
                                localField3.set(localObject2, config.preSharedKey);
                                localField3.setAccessible(false);

                                // 起始IP设置
                                Field localField8 = localObject2.getClass().getDeclaredField(
                                                "startingIP");
                                localField8.setAccessible(true);
                                localField8.set(localObject2, "192.168.1.100");
                                localField8.setAccessible(false);

                                // DHCP设置
                                Field localField7 = localObject2.getClass().getDeclaredField(
                                                "dhcpEnable");
                                localField7.setAccessible(true);
                                localField7.set(localObject2, 1);
                                localField7.setAccessible(false);

                        }

                } catch (Exception e) {
                        System.out.println(e);
                }
                // HTC热点设置完毕
复制代码

 

posted @   IAmAProgrammer  阅读(1283)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示