와이파이 상태, 네트워크 상태 수신
java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | package com.ghj.blog_026; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.NetworkInfo; import android.net.wifi.WifiManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { //UI TextView txtWifistate; TextView txtNetworkstate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //UI txtWifistate = (TextView)findViewById(R.id.txtWifistate); txtNetworkstate = (TextView)findViewById(R.id.txtNetworkstate); //리시버등록 IntentFilter filter = new IntentFilter(); filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); registerReceiver(mReceiver, filter); } //와이파이 상태변화 수신 BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { switch(intent.getAction()){ //와이파이 상태변화 case WifiManager.WIFI_STATE_CHANGED_ACTION: //와이파이 상태값 가져오기 int wifistate = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN); switch(wifistate){ case WifiManager.WIFI_STATE_DISABLING: //와이파이 비활성화중 txtWifistate.setText("와이파이 비활성화중"); break; case WifiManager.WIFI_STATE_DISABLED: //와이파이 비활성화 txtWifistate.setText("와이파이 비활성화"); break; case WifiManager.WIFI_STATE_ENABLING: //와이파이 활성화중 txtWifistate.setText("와이파이 활성화중"); break; case WifiManager.WIFI_STATE_ENABLED: //와이파이 활성화 txtWifistate.setText("와이파이 활성화"); break; default: txtWifistate.setText("알수없음"); break; } break; //네트워크 상태변화 case WifiManager.NETWORK_STATE_CHANGED_ACTION: NetworkInfo info = (NetworkInfo)intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); //네트워크 상태값 가져오기 NetworkInfo.DetailedState state = info.getDetailedState(); String typename = info.getTypeName(); if(state==NetworkInfo.DetailedState.CONNECTED){ //네트워크 연결 txtNetworkstate.setText(typename + " 네트워크 연결"); } else if(state==NetworkInfo.DetailedState.DISCONNECTED){ //네트워크 끊음 txtNetworkstate.setText(typename + " 네트워크 끊음"); } break; } } }; //리시버 해제 @Override protected void onDestroy() { unregisterReceiver(mReceiver); super.onDestroy(); } } | cs |
xml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/txtWifistate" android:textSize="24dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/txtNetworkstate" android:textSize="24dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> | cs |
결과
핸드폰의 와이파이도 켜져있고 와이파이 네트워크 상태도 연결된 경우
핸드폰의 와이파이는 켜져있으나 와이파이의 네트워크 상태가 끊긴 경우
'IT > - 프로그래밍' 카테고리의 다른 글
안드로이드 2진수, 8진수, 16진수를 10진수로 변환 (0) | 2016.11.13 |
---|---|
안드로이드 10진수를 2진수, 8진수, 16진수로 변환 (0) | 2016.11.13 |
안드로이드 MCC(Mobile Country Code) MNC(Mobile Network Code) 구하기 (0) | 2016.11.08 |
안드로이드 블루투스 페어링 하기 (마스터 모드) (9) | 2016.11.06 |
안드로이드 블루투스 검색응답 모드로 페어링 하기 (슬레이브 모드) (0) | 2016.10.30 |