728x90
안녕하세요
오늘은 버튼을 클릭하여
notification 알림을 띄어보겠습니다.
먼저 아래 스틱코드 링크에서 해당 코드를 '즐겨찾기' 해주세요
https://stickode.com/detail.html?no=2314
안드로이드 스튜디오에서
아래와 같이 스틱코드를 활용하여 코드들을 생성합니다.
*스틱코드 포스팅의 태그를 입력하면 자동으로 탭이 생성되고
탭을 클릭하면 전체 코드를 불러 올 수 있습니다.
1. MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
// Channel에 대한 id 생성
private static final String PRIMARY_CHANNEL_ID = "primary_notification_channel";
// Channel을 생성 및 전달해 줄 수 있는 Manager 생성
private NotificationManager mNotificationManager;
// Notification에 대한 ID 생성
private static final int NOTIFICATION_ID = 0;
// Notification을 호출할 button 변수
private Button button_notify;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button_notify = findViewById(R.id.notify);
button_notify.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
sendNotification();
}
});
createNotificationChannel();
}
//채널을 만드는 메소드
public void createNotificationChannel()
{
//notification manager 생성
mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
// 기기(device)의 SDK 버전 확인 ( SDK 26 버전 이상인지 - VERSION_CODES.O = 26)
if(android.os.Build.VERSION.SDK_INT
>= android.os.Build.VERSION_CODES.O){
//Channel 정의 생성자( construct 이용 )
NotificationChannel notificationChannel = new NotificationChannel(PRIMARY_CHANNEL_ID
,"Test Notification",mNotificationManager.IMPORTANCE_HIGH);
//Channel에 대한 기본 설정
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.enableVibration(true);
notificationChannel.setDescription("Notification from Mascot");
// Manager을 이용하여 Channel 생성
mNotificationManager.createNotificationChannel(notificationChannel);
}
}
// Notification Builder를 만드는 메소드
private NotificationCompat.Builder getNotificationBuilder() {
NotificationCompat.Builder notifyBuilder = new NotificationCompat.Builder(this, PRIMARY_CHANNEL_ID)
.setContentTitle("You've been notified!")
.setContentText("This is your notification text.")
.setSmallIcon(R.drawable.ic_android);
return notifyBuilder;
}
// Notification을 보내는 메소드
public void sendNotification(){
// Builder 생성
NotificationCompat.Builder notifyBuilder = getNotificationBuilder();
// Manager를 통해 notification 디바이스로 전달
mNotificationManager.notify(NOTIFICATION_ID,notifyBuilder.build());
}
}
2. activity_main.xml
3. 이미지 에셋 설정
file - new - Image Asset으로 가서 Name을 ic_android로 설정해서 next - finish 해주세요
4. 결과
버튼을 클릭하면 화면 상단에 알림 창이 뜹니다.
타이틀과 텍스트, 아이콘이 정상적으로 작동 되는 것을 확인 할 수 있습니다.
'안드로이드 자바' 카테고리의 다른 글
[JAVA] 경과 시간 구하기 (0) | 2021.08.16 |
---|---|
[JAVA][Android] 서비스 구현하기 (0) | 2021.08.13 |
[JAVA][Android] 버튼으로 프래그먼트 전환하기 (0) | 2021.08.08 |
[JAVA][Android] 자바 정규 표현식 (유효성 검사) 사용법 & 예제 (0) | 2021.08.07 |
[JAVA][Android] registerForActivityResult() 사용하기 (0) | 2021.08.04 |