Study/Android
WiFi 연결 하기및 끊기
Answer Choi
2017. 7. 11. 09:18
반응형
먼저 Android 6.0이상부터는 WiFi및 위치정보 관련해서 작업을 수행할때
권한을 요청해야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | void permission(){ if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) { ActivityCompat.requestPermissions( this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_CODE_LOCATION); } else { ActivityCompat.requestPermissions( this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_CODE_LOCATION); } } } | cs |
앱이 처음 실행되는 부분에 꼭 윗부분을 넣어주셔야 합니다.
1 2 3 4 5 6 7 8 9 10 11 | void connect(){ WifiConfiguration wificonfig=new WifiConfiguration(); wificonfig.SSID = String.format("\"%s\"", WIFI_NAME); wificonfig.preSharedKey = String.format("\"%s\"", WIFI_PASSWORD); WifiManager wifiManager=(WifiManager)getApplicationContext().getSystemService(WIFI_SERVICE); int netId = wifiManager.addNetwork(wificonfig); wifiManager.disconnect(); wifiManager.enableNetwork(netId, true); wifiManager.reconnect(); } | cs |
위 코드가 WIFI에 접속하는 코드입니다.
특히 Line 6과 Line8은 WIFI의 접속을 끊는 코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | void discon_enerview(){ String ssid = null; ConnectivityManager connManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (networkInfo.isConnected()) { final WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) { ssid = connectionInfo.getSSID(); } } if(ssid.contains("EnerView")){ WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); wifi.disconnect(); } } | cs |
Line 1~11 : 현재 접속된 WIFI 이름(SSID)를 가져오는 코드입니다.
Line 12~15 : 특정 WiFi(EnerView가 들어가는 SSID)일 경우 접속을 끊는 코드입니다.
반응형