반응형
네트워크 연결상태 콜백
- 안드로이드 6.0 이상부터 사용가능
NetworkCallback Function
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
final ConnectivityManager cm = (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = new NetworkRequest.Builder();
cm.registerNetworkCallback(
builder.build(),
new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
int connectionState = -1;
Network nw = cm.getActiveNetwork();
if(nw != null) {
NetworkCapabilities actNw = cm.getNetworkCapabilities(nw);
if(actNw != null) {
if(actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
connectionState = NetworkCapabilities.TRANSPORT_WIFI;
} else if(actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
connectionState = NetworkCapabilities.TRANSPORT_CELLULAR;
} else if(actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
connectionState = NetworkCapabilities.TRANSPORT_ETHERNET;
} else if(actNw.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH)) {
connectionState = NetworkCapabilities.TRANSPORT_BLUETOOTH;
} else {
connectionState = 9;
}
}
}
if(connectionState >= 0) {
String msg = "[연결됨] ";
if(connectionState == NetworkCapabilities.TRANSPORT_WIFI) msg += "WIFI";
else if(connectionState == NetworkCapabilities.TRANSPORT_CELLULAR) msg += "CELLULAR";
else if(connectionState == NetworkCapabilities.TRANSPORT_ETHERNET) msg += "ETHERNET";
else if(connectionState == NetworkCapabilities.TRANSPORT_BLUETOOTH) msg += "BLUETOOTH";
else msg += "기타";
Toast.makeText(EBZSMMainActivity.this, msg, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(EBZSMMainActivity.this, "[연결됨] 체크오류발생!!", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onLost(Network network) {
//네트워크 끊어짐
Toast.makeText(EBZSMMainActivity.this, "[끈어짐]", Toast.LENGTH_SHORT).show();
}
}
);
}
반응형
'안드로이드' 카테고리의 다른 글
Android 버전 별 코드 동작(@TargetApi, @RequiresApi) (0) | 2021.11.17 |
---|---|
Android Dialog, Full Screen Dialog (0) | 2021.11.17 |
Android EditText 엔터키 이벤트 동작 (0) | 2021.11.17 |
Android 화면 크기, dp - px 간의 상호 변환 (0) | 2021.11.17 |
Android PDF Viewer(Assets, Http) (0) | 2021.11.17 |
최근댓글