nexus 7和nexus 10问题中的接入点

时间:2013-03-05 06:36:54

标签: android wifi ip-address access-point

我正在开发一款需要设备创建接入点的应用。我正在测试Nexus 7(Android 4.2.1)和Nexus 10(4.2.2)上的代码,我在两者中都遇到了同样的问题。我设法启用接入点,但每个尝试连接的设备都保持“获取IP地址”。知道为什么吗?我在Galaxy tab 10“(Android 4.0.3)中测试了相同的代码,它的工作非常完美。

private void createWifiAccessPoint(String pSSID)
{    
    if(mWifiManager.isWifiEnabled())
    {
        mWifiManager.setWifiEnabled(false);          
    }

    Method[] wmMethods = mWifiManager.getClass().getDeclaredMethods();   
    boolean methodFound=false;
    for(Method method: wmMethods){
        if(method.getName().equals("setWifiApEnabled"))
        {
            methodFound=true;

            WifiConfiguration netConfig = new WifiConfiguration();
            netConfig.SSID = pSSID;

            try {
                boolean apstatus = (Boolean) method.invoke(mWifiManager, netConfig,true);          
                for (Method isWifiApEnabledmethod: wmMethods)
                {
                    if(isWifiApEnabledmethod.getName().equals("isWifiApEnabled"))
                    {
                        while(!(Boolean)isWifiApEnabledmethod.invoke(mWifiManager)){
                        };
                        for(Method method1: wmMethods){
                            if(method1.getName().equals("getWifiApState")){
                                int apstate;
                                apstate=(Integer)method1.invoke(mWifiManager);
                                Toast.makeText(this, netConfig.SSID + String.valueOf(apstate), Toast.LENGTH_LONG).show();
                            }
                        }
                    }
                }
                if(apstatus)
                {
                    System.out.println("success");  
                }else
                {
                    System.out.println("failed");   
                }

            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }      
    }
    if(!methodFound){

    }
}

1 个答案:

答案 0 :(得分:0)

我怀疑您的问题是,您尝试连接的设备预计会从Nexus设备的DHCP服务器提供IP地址等。您的代码只是创建一个访问点。您可能需要在链路的两端都有一个静态IP地址。也就是说,我不确定应该怎么做,因为我自己或多或少都有同样的问题。

请参阅Unable to programatically create working Wi-Fi access point on Jellybean tablet

我试图将IP地址与接入点关联起来,虽然我似乎已经这样做了,但我仍然无法建立连接,所以我只能部分回答你的问题。我担心。 / p>