마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

특정 와이파이에 접속해야 앱이 실행되는 조건이 궁금합니다.

0 추천
실내에서 특정 와이파이에 연결해야 앱을 실행시키고 싶은데

 

혹시 어떤 구문을 참조하거나 쓰면 될까요?
호떡쓰 (180 포인트) 님이 2023년 3월 28일 질문

1개의 답변

0 추천

먼저 ConnectivitManager를 이용해 Wi-fi 접속상태를 확인하세요.

ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (networkInfo.isConnected()) {
    // 와이파이에 연결되어 있는 경우
} else {
    // 와이파이에 연결되어 있지 않은 경우
}

 

접속이 되었다면, WifiManager를 이용해서 특정 Wi-fi에 접속되었는지 체크하세요.
https://developer.android.com/reference/android/net/wifi/WifiManager

WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = "\"Wifi_SSID\"";  // 님의 SSID
wifiConfig.preSharedKey = "\"Wifi_Password\"";  //님의 Password
wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

int networkId = wifiManager.addNetwork(wifiConfig);
wifiManager.disconnect();
wifiManager.enableNetwork(networkId, true);
wifiManager.reconnect();

 

위 코드에서는 "WifiConfiguration.KeyMgmt.WPA_PSK"를 사용하여 WPA 보안 프로토콜을 사용하는 Wi-fi에 연결하는 예시입니다. 다른 보안 프로토콜을 사용하는 Wi-fi에 연결해야 하는 경우에는 해당 보안 프로토콜에 맞는 코드를 사용해야 합니다.

추가적으로, 필요하다면, Wi-fi에 연결된 후 알림을 받기 위해 BroadcastReceiver를 등록하는 것이 좋습니다. 이를 통해 와이파이 연결 상태가 변경될 때마다 적절한 처리를 할 수 있습니다. 추가적인 상수값에 대해서는 아래 레퍼런스를 참조하세요.

https://developer.android.com/reference/android/net/wifi/WifiConfiguration.KeyMgmt

더 자세한 내용은 위의 WifiManager 링크를 참조하셔서 해결하시기 바랍니다.

spark (226,420 포인트) 님이 2023년 3월 28일 답변
...