ホットスポットを介して2台の電話を接続する必要がある場所を実行しています。
2 つのボタン (SEND と RECEIVE) があります。受信ボタンを押すと、ホットスポットがアクティブになります。人が SEND ボタンを押すと、そのホットスポットに接続する必要があります。
私はすでにここで多くの調査を行っており、コードを作成するのに大いに役立ちましたが、まだ機能していません。addNetwork メソッドは有効な ID を返し、enableNetwork は true を返しますが、それでもホットスポット ネットワークに接続しません。他のものを無効にしますが、ホットスポットには接続しません。
ホットスポットは、設定やwifiなどを介して参加できるため、うまく作成されています.
これが私のコードです:
ボタンのリスナーは次のとおりです。
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();
}
}
});
}
これが私のwifi構成です:(私はそれらの両方を試しました)
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);
}