BroadCastReceiver
와이파이 인터넷 네트워크 체크할 때 주로 사용하는 4대 컴포넌트 중에 하나
textStyle
bold - 굵게
italic - 기울기를 주는 글씨체
normal - 일반 기본 글씨체
Intent의 종류
명시적 Intent
암시적 Intent
Intent 와 IntentFilter의 차이점
Intent - 기능을 가져와 쓰는 것
IntentFilter - Intent와 반대
---------------------------------------
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="khon"
android:textSize="30sp"
android:textColor="#38EFEF"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
---------------------------------------
---------------------------------------
MainActivity.java
package com.example.broadcastreceiver;
import androidx.appcompat.app.AppCompatActivity;
import android.content.IntentFilter;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
public static TextView tv_state;
private NetworkReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_state = findViewById(R.id.tv_state);
// 브로드 캐스트 리시버 등록
IntentFilter filter = new IntentFilter();
receiver = new NetworkReceiver();
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
registerReceiver(receiver,filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 브로드 캐스트 리시버 해제
unregisterReceiver(receiver);
}
}
---------------------------------------
java파일 생성
---------------------------------------
NetworkReceiver.java
package com.example.broadcastreceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
public class NetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 네트워크 상태 값 받아오기
if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())) {
NetworkInfo info = (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
NetworkInfo.DetailedState state = info.getDetailedState();
if (state == NetworkInfo.DetailedState.CONNECTED) { // 네트워크 연결 상태이면...
MainActivity.tv_state.setText("네트워크 연결 완료");
} else if (state == NetworkInfo.DetailedState.DISCONNECTED) { // 네트워크 연결 해제이면...
MainActivity.tv_state.setText("네트워크 연결 해제");
}
}
}
}
---------------------------------------
---------------------------------------
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.broadcastreceiver">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
'안드로이드 앱 만들기' 카테고리의 다른 글
Constraint Layout (0) | 2020.09.10 |
---|---|
VideoView (0) | 2020.09.08 |
RelativeLayout (랠러티브레이아웃) (0) | 2020.09.06 |
Login & Register (0) | 2020.09.02 |
Linear Layout (1) (0) | 2020.09.01 |