2
아래 코드를 사용하여 Android 프로필에 무선 프로필을 만듭니다. 어떤 이유에서인지 매번 새로운 프로파일을 생성하므로 전화기는 동일한 무선 네트워크에 대해 여러 개의 프로파일을 갖습니다. 이미 존재한다면 새로운 프로파일을 생성하지 못하게 할 방법이 있습니까?Java - 이미 존재하는 경우 무선 네트워크에 연결하는 방법?
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.util.Log;
import android.widget.TextView;
public class IVMOBILEActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
TextView status = new TextView(this);
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"MyNetwork\""; //IMP! This should be in Quotes!!
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;
wc.priority = 10;
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.preSharedKey = "\"Password\"";
WifiManager wifiManag = (WifiManager) this.getSystemService(WIFI_SERVICE);
boolean res1 = wifiManag.setWifiEnabled(true);
int res = wifi.addNetwork(wc);
Log.d("WifiPreference", "add Network returned " + res);
boolean es = wifi.saveConfiguration();
Log.d("WifiPreference", "saveConfiguration returned " + es);
boolean b = wifi.enableNetwork(res, true);
Log.d("WifiPreference", "enableNetwork returned " + b);
tv.setText("You are now connected! " +
"Version 1.0");
status.setText("The was an error connecting, please try again.");
try {
Thread.sleep(5000);
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if (connec != null && (connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) ||(connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED)){
//You are connected, do something online.
setContentView(tv);
}else if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED) {
//Not connected.
setContentView(status);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
응답 해 주셔서 감사합니다. 상태를 표시 할 수 있도록 진행률 표시 줄을 어떻게 감쌀 것입니까? – user1342164
제 말은, 이와 같은 방법의 지연이 사용자에게 눈에 띄기까지 충분히 길다는 것을 상상할 수 없습니다. 하지만 안드로이드의 진행률 표시 줄에 대한 경험이 없습니다. 별개의 질문을하는 것이 가장 좋습니다. – kcoppock
감사합니다! 나는 너의 제안을 시도 할 것이다. – user1342164