Android

WifiNetworkSpecifier 구현 예제

Darane 2020. 4. 19. 17:48

WifiNetworkSpecifier는 Android10(API 레벨 29) 이상 기기에서 새롭게 사용할 수 있는 API이다. 폰에서 구글 크롬캐스트나 구글 홈과 같은 기기의 Wi-Fi Network로 연결하여 통신하는데 사용할 수 있다.

연결할 기기를 찾기 위해서 SSID, SSID pattern, BSSID, BSSID pattern 등을 조합하여 연결할 지 결정할 수 있다. 

 

필요 permission Manifest.permission.ACCESS_NETWORK_STATE

 

1. 기본 예제

: WPA2 보안설정을 가진 Wi-Fi 네트워크에 연결한다.

WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier.Builder()
            .setSsid("Device1234") //SSID 이름
            .setWpa2Passphrase("12345678") //비밀번호, 보안설정 WPA2
            .build();

NetworkRequest networkRequest = new NetworkRequest.Builder()
            .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) //연결 Type
            .setNetworkSpecifier(wifiNetworkSpecifier)
            .build();

ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
connectivityManager.requestNetwork(networkRequest, networkCallback);

NetworkCallback

ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
    @Override
    public void onAvailable(@NonNull Network network) {
        Log.d(tag, "onAvailable");
    }

    @Override
    public void onUnavailable() {
        Log.d(tag, "onUnavailable");
    }
};

unregisterNetworkCallback

: 등록된 NetworkCallback을 등록해제하고 연결된 network 연결을 해제한다.

connectivityManager.unregisterNetworkCallback(networkCallback);

 

2. 보안설정

Enhanced Open(OWE) network

WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier.Builder()
            .setIsEnhancedOpen(true)
            .build();

WPA3

WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier.Builder()
            .setSsid("Device1234")
            .setWpa3Passphrase("12345678")
            .build();

 

3. 관련 API

WifiNetworkSpecifier: Local Wi-Fi 네트워크를 요청하는데 사용되는 개체

NetworkRequest: 네트워크 요청을 정의

ConnectivityManager: 네트워크 연결에 관한 것을 관리하는 Manager

 

WifiNetworkSuggestion을 통한 Wi-Fi 연결은 아래 포스팅에서 볼 수 있다.

 

WifiNetworkSuggestion 구현 예제

WifiNetworkSuggestion은 이름과 같이 Wi-Fi 네트워크를 사용자에게 제안해주는 API이다. Android10(API레벨 29) 이상에서 사용 가능하다. App에서 구현한 Wi-Fi 네트워크 정보들을 추가하여 App을 사용하는 사용

3edc.tistory.com

 

2020/04/20 - [Android] - WifiNetworkSuggestion 구현 예제

반응형

'Android' 카테고리의 다른 글

Android adb command list  (0) 2021.09.07
Android Annotation Summary  (0) 2021.09.07
List up Android version, SDK version, API level  (0) 2021.09.03
WifiNetworkSuggestion Example  (0) 2021.09.02
Android 버전, SDK 버전, API 수준 정리  (0) 2020.07.27
Android adb 명령어 정리  (0) 2020.05.19
Android Annotation 정리  (0) 2020.04.23
WifiNetworkSuggestion 구현 예제  (0) 2020.04.20