안드로이드 와이파이 SSID 가져오기

반응형

Android 8 에서 동작하던 SSID 가져오기가 Android 11 에서 안되는 현상이 확인되었습니다.

구글링 해보니 runtime permission 적용하면 된다고 하여 아래소스를 찾아 적용하였습니다.

(기능 사용시 권한 부여)

 


public String SSID = null;


tryToReadSSID(); // 호출하여 아래 내용 실행


    // SSID 가져오기
    private void tryToReadSSID() {
        // If requested permission isn't Granted yet
        if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // Request permission from user
            ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 101);
        } else { // Permission already granted
            WifiManager wifiManager = (WifiManager) getActivity().getApplicationContext().getSystemService(WIFI_SERVICE);
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
            if(wifiInfo.getSupplicantState() == SupplicantState.COMPLETED) {
                SSID = wifiInfo.getSSID().replaceAll("\"", ""); // SSID 앞뒤에 있는 따옴표 제거하고 SSID 변수에 입력
            }
        }
    }
 

 

반응형

댓글()