이번 시간에는 현재 안드로이드의 네트워크 상태를 알아보는 방법을 알려드리겠습니다.
wifi인지 모바일상태인지 둘 다 아닌 연결이 안되어 있는 상태인지???
activity_main.xml
상태를 보여줄 텍스트뷰와 버튼을 만듭니다.
버튼을 클릭하면 텍스트뷰에 현재의 상태를 보여줄 것입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="200dp"
android:layout_height="100dp"
/>
<Button
android:id="@+id/stateBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="인터넷 상태"/>
</LinearLayout>
MainActivity.java
checkInternet()라는 이름의 현재 상태를 알려줄 함수를 만듭니다.
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private static final int TYPE_WIFI = 1; //와이파이
private static final int TYPE_MOBILE = 2;//모바일
private static final int TYPE_NOT_CONNECTED = 3;//네트워크 연결안된상태
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView); //상태를 보여줄 텍스트뷰
Button stateBtn = findViewById(R.id.stateBtn);
stateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int state = checkInternet();
if(state == 1){
textView.setText("와이파이 상태입니다.");
}else if(state == 2){
textView.setText("모바일 상태입니다.");
}else if(state == 3){
textView.setText("네트워크 연결이 안되어있습니다.");
}
}
});
}
/**
* 인터넷 상태체크
* @return
*/
private int checkInternet(){
Context context = getApplicationContext();
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
if(networkInfo != null){
int type = networkInfo.getType();
if(type == ConnectivityManager.TYPE_MOBILE)
{
return TYPE_MOBILE; //모바일
}else if(type == ConnectivityManager.TYPE_WIFI)
{
return TYPE_WIFI; //와이파이
}
}
return TYPE_NOT_CONNECTED; //연결이 되지 않은 상태
}
}
[안드로이드]포그라운드 서비스(Foreground Service) 죽지않는 서비스& 스레드(Thread) (4) | 2020.06.17 |
---|---|
[안드로이드] 스위치(Switch) 텍스트뷰 색상변경 (0) | 2020.06.11 |
[안드로이드]스피너 드롭다운 셀렉트박스 배경색 바꾸기 setOnItemSelectedListener (0) | 2020.06.09 |
[안드로이드]버튼클릭 랜덤숫자 생성 랜덤 배경색 바꾸기 Math.random() (0) | 2020.06.08 |
[안드로이드] 라디오버튼 예제 배경색 바꾸기 setOnCheckedChangeListener (0) | 2020.06.08 |
댓글 영역