0

私はホットスポット経由で2台の電話機を接続する必要があります。ホットスポットへの接続

2つのボタン(送信と受信)があります。人がRECEIVEボタンを押すと、そのホットスポットがアクティブになります。人がSENDボタンを押した場合、そのホットスポットに接続する必要があります。

私は既にここで多くの研究をしており、コードを構築するのに多くの助けをしましたが、まだ動作していません。 addNetworkメソッドは有効なIDを返しますが、enableNetworkはtrueを返しますが、それでもホットスポットネットワークには接続しません。それは他のものを無効にしますが、ホットスポットには接続しません。ここで

私は設定を通過する場合、私はそれに参加することができますので、ホットスポットがうまく作成され、無線LANなど

は私のコードです:ここでは

は、ボタンのリスナーです:

 protected void setUpButtonListeners(){ 
     Log.i("SETUP BUTTON LISTENERS", "SETTING UP THE BUTTON LISTENERS"); 

    wificonfiguration=new WifiConfiguration(); 
    setUpTheWifiConfiguration(wificonfiguration); 
    wifimanager = (WifiManager) HighwayActivity.this.getSystemService(HighwayActivity.this.WIFI_SERVICE); 
    wifimanager.setWifiEnabled(true); 

    Button sendButton= (Button) findViewById(R.id.send); 
    Button receiveButton = (Button) findViewById(R.id.receive); 
    sendButton.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View arg0) 
     { 
       netID = wifimanager.addNetwork(wificonfiguration); 
       Log.e("NET ID ::: ", "O net id is : "+ netID); 

       boolean asad=wifimanager.disconnect(); 
       Log.e("wifi.manager disconnect"," bool is "+asad); 
       boolean aux = wifimanager.enableNetwork(netID, true); 
       Log.e("enableNetwork", "bool aux : " + aux); 
       boolean reconnect=wifimanager.reconnect(); 
       Log.e("Recconect ::: ", " recnect is : "+ reconnect); 

      wifireceiver=new WifiReceiver(); 
      registerReceiver(wifireceiver, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION)); 

     } 
    }); 

    receiveButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View arg0) 
     { 

      try 
      { 
       wifimanager.setWifiEnabled(false); 
       //USING REFLECTION TO GET METHOD "SetWifiAPEnabled" 
       Method method=wifimanager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); 
       method.invoke(wifimanager, wificonfiguration, true); 

       Toast.makeText(HighwayActivity.this, "Craeted a hotspot with the SSID : " + wificonfiguration.SSID, Toast.LENGTH_SHORT).show(); 

      } 
      catch (NoSuchMethodException 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(); 
      } 
      catch (InvocationTargetException e) 
      { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }); 

} 
ここで

私の無線LANの設定です:(私はそれらの両方を試してみました)

protected void setUpTheWifiConfiguration(WifiConfiguration wificonfiguration){ 
    wificonfiguration.SSID = "\"" + mySSID + "\""; 

    wificonfiguration.preSharedKey = "\"" + "pwteste123A"+ "\""; 
    /* 
    wificonfiguration.status = WifiConfiguration.Status.ENABLED; 
    wificonfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
    wificonfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
    wificonfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA); 
    // wificonfiguration.hiddenSSID = true; 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); 
    wificonfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
    wificonfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
    wificonfiguration.priority = 40; 
    */ 
    // No security 
    wificonfiguration.status = WifiConfiguration.Status.DISABLED; 
    wificonfiguration.priority = 40; 

       wificonfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 
    wificonfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
    wificonfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA); 
    wificonfiguration.allowedAuthAlgorithms.clear(); 
    wificonfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
    wificonfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
    wificonfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
} 

答えて

0

私はALR eadyは問題を解決しました。

まず第1に、クライアント側のSSIDに2つの引用符を追加する必要がありました。 その後、WifiConfigurationからGroupCiphersをすべて削除して、ステータスを有効に変更して、優先度を設定する必要はありませんでした。

  WifiConfiguration conf = new WifiConfiguration(); 
      conf.SSID = "\"" + "TinyBox" + "\""; 

      conf.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); 

      conf.preSharedKey="\"password\""; 
      conf.hiddenSSID = true; 
      conf.status = WifiConfiguration.Status.ENABLED; 

      conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
      conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
      conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 

      int netid=wifi.addNetwork(conf); 

      List<WifiConfiguration> list = wifi.getConfiguredNetworks(); 
      for(WifiConfiguration i : list) { 

       if(i.SSID != null && i.SSID.equals("\"" + "TinyBox" + "\"")) { 
        Log.d("cONFIG nETOWKRS", "Found List of COnfigured Networks Tinybox"); 
        try { 
         boolean b=wifi.disconnect(); 

         boolean enab=wifi.enableNetwork(i.networkId, true); 

         wifi.reconnect(); 
         break; 
        } 
        catch (Exception e) { 
         e.printStackTrace(); 
        } 

       } 
      } 

私は、これは将来的に他の人の回答を投稿するための

+0

感謝を役に立てば幸い 、ありがとうございます。別のデバイスでホットスポットを作成する方法についてコードを共有してください。ありがとう。 –

関連する問題