2013-03-05 2 views
1

Я разрабатываю приложение, которое требует, чтобы устройство создало точку доступа. Я тестирую код на Nexus 7 (Android 4.2.1) и Nexus 10 (4.2.2), и я получаю ту же проблему в обоих. Мне удается включить точку доступа, но все устройства, которые пытаются подключиться, остаются «Получение ip-адреса». Любая идея почему? Я тестировал тот же код на вкладке галактики 10" (Android 4.0.3), и это работает прекрасно.Точка доступа в nexus 7 и nexus 10 issue

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){ 

    } 
} 

ответ

0

Я подозреваю, ваша проблема в том, что устройство, которое вы пытаетесь соединиться с, как ожидается, будет поставляться с IP-адрес и т. Д. С сервера DHCP в устройстве Nexus.Какой код просто создает точку доступа. Вероятно, вам нужен статический IP-адрес на обоих концах ссылки. Тем не менее, я не уверен, как это сделать, как я более или менее точно такая же проблема, я.

См Unable to programatically create working Wi-Fi access point on Jellybean tablet

Я попытался связать IP-адрес с т он имеет точку доступа, и хотя я, кажется, сделал это, я все еще не смог установить соединение, поэтому у меня есть только частичный ответ на ваш вопрос, которого я боюсь.