반응형
연결된 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 |