반응형
버튼을 누르면 상단 알림창에 알림을 띄우는 예제를 만들어보겠습니다.
1. 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">
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="알림창"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
2. MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button bt;
NotificationManager manager;
NotificationCompat.Builder builder;
private static String CHANNEL_ID = "channel1";
private static String CHANEL_NAME = "Channel1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showNoti();
}
});
}
public void showNoti(){
builder = null;
manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//버전 오레오 이상일 경우
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
manager.createNotificationChannel(
new NotificationChannel(CHANNEL_ID, CHANEL_NAME, NotificationManager.IMPORTANCE_DEFAULT)
);
builder = new NotificationCompat.Builder(this,CHANNEL_ID);
//하위 버전일 경우
}else{
builder = new NotificationCompat.Builder(this);
}
//알림창 제목
builder.setContentTitle("알림");
//알림창 메시지
builder.setContentText("알림 메시지");
//알림창 아이콘
builder.setSmallIcon(R.drawable.icon);
Notification notification = builder.build();
//알림창 실행
manager.notify(1,notification);
}
}
참고하실 부분은 오레오 버전 이상일 경우와 아닐 경우를 구분해주셔야 버전에 상관없이 잘 작동할 수 있습니다.
그리고 아이콘을 설정하실때 아이콘의 사이즈는 24 x 24입니다.
이번 예제는 알림창만 띄우는 예제이기 때문에 다음 포스팅에서 알림창을 터치했을 때 이벤트를 발생시키는 예제를 만들어보겠습니다.
반응형