안드로이드 연결된 wifi ssid 정보 얻기

2022. 7. 15. 08:47·앱 개발/Java
반응형

 

연결된 wifi ssid를 식별하여 특정 wifi ssid에만 작업이 가능하도록 하는 어플을 제작하는 프로젝트입니다

 

 

우선 AndroidManifest에 필요한 권한을 요청해줍니다

 

 

 

 

[AndroidManifest.xml]

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

 

전체 소스코드 첨부합니다

 

이대로만 쓰시면 연결된 wifi의 ssid를 log로 확인해보실 수 있습니다

 

 

[MainActiviy.java]


public class MainActivity extends AppCompatActivity {

    public String SSID = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tryToReadSSID();
        
    }

    private void tryToReadSSID() {
        //if requested permission isn't Granted yet
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) !=
                PackageManager.PERMISSION_GRANTED){
            //Request permission from user
            ActivityCompat.requestPermissions(this, new String[]
                    {Manifest.permission.ACCESS_FINE_LOCATION}, 101);
        } else { //permission already granted
            WifiManager wifiManager = (WifiManager) this.getApplicationContext().getSystemService(WIFI_SERVICE);
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
            if (wifiInfo.getSupplicantState() == SupplicantState.COMPLETED) {
                Log.d("test 1 ", wifiInfo.getSSID());
                SSID = wifiInfo.getSSID().replaceAll("\"", ""); //SSID 앞뒤에 있는 따옴표 제거하고 SSID 변수에 입력
                Log.d("test 2 ", SSID);
                if(SSID.equals("원하는 SSID 이름")){
                    Log.d("test 3", "원하는 SSID 맞아");

                }
            }
        }
    }

}

 

 

예를들어 연결되있는 wifi 이름이 finetech 라면 

test 1의 로그를 찍어보시면 "finetech"

test 2의 로그를 찍어보시면 finetech

이렇게 나옵니다

 

 

 

여기서 저는 사내 특정 wifi에 연결되었을 경우에만 작업을 진행할 예정이어서

SSID.equals()를 통해 특정 wifi에 이름을 넣어줬습니다

 

 

 

원하시는 방향에 맞게 변경하여 사용하시면 문제없이 돌아가실 겁니다

궁금하신점은 댓글 남겨주세요 감사합니다

 

반응형

'앱 개발 > Java' 카테고리의 다른 글

[android] Toolbar menu 사용하기(왼쪽, 오른쪽 다) + menu icon 커스텀  (0) 2022.07.27
[안드로이드]ActionBar, ToolBar, 상태 표시줄 커스텀  (0) 2022.07.26
안드로이드 토글 버튼 on/off (아이폰 스타일)  (1) 2022.06.07
안드로이드 레이아웃 백그라운드 배경색 설정(벡터 드로어블 이용)  (0) 2022.04.05
[안드로이드] 웹 서버에 데이터 요청 (Open API 활용)  (0) 2022.03.30
'앱 개발/Java' 카테고리의 다른 글
  • [android] Toolbar menu 사용하기(왼쪽, 오른쪽 다) + menu icon 커스텀
  • [안드로이드]ActionBar, ToolBar, 상태 표시줄 커스텀
  • 안드로이드 토글 버튼 on/off (아이폰 스타일)
  • 안드로이드 레이아웃 백그라운드 배경색 설정(벡터 드로어블 이용)
맨땅
맨땅
다른 개발자분들에게 도움이 되었으면 좋겠습니다
  • 맨땅
    맨땅에 코딩
    맨땅
  • 전체
    오늘
    어제
    • 분류 전체보기 (48)
      • 프로그래밍 지식 (1)
      • 즐거운 웹 개발 (7)
        • Setting (3)
        • 프로그래밍 (1)
        • HTML, CSS (1)
      • 앱 개발 (29)
        • Java (26)
        • Kotlin (0)
        • Setting (2)
        • 프로그래밍 (0)
      • AI (1)
        • Setting2 (0)
        • 프로그래밍 (0)
        • 크롤링 (1)
      • DB (9)
      • ---------------------------.. (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
맨땅
안드로이드 연결된 wifi ssid 정보 얻기
상단으로

티스토리툴바