1.
일딴 [Notification(노티피케이션), 알림 - (2)사용법+설명](https://hijjang2.tistory.com/112) 여기까지
코드 된 상태에서 작업 했음. = (기본 알림 콘텐츠 틀 잡힌 상태)
2.
스타일 개체로 setStyle()을 호출하고 각 템플릿에 해당하는 정보를 제공하면 된다.
3. 큰 이미지 추가
- 3.0. 일딴, 사용할 이미지를 Bitmap으로 바꿔야 한다.
- 3.1. 알림에 이미지를 추가하려면 NotificationCompat.BigPictureStyle 인스턴스를 setStyle()에 전달한다.
- 3.2. 결과
4. 코드
-MainActivity.java-
package com.example.noti;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button btn1;
private NotificationCompat.Builder builder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createNotificationChannel();
btn1 = findViewById(R.id.btn1);
// 다음 스니펫은 사용자가 알림을 탭하면 활동을 여는 기본 인텐트를 만드는 방법을 보여줍니다.
Intent intent = new Intent(this, Two.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); //PendingIntent->앱이 꺼져 있오도 원격으로 킬 수가 있는 거
// Bitmap으로 바꾼 후 저장
Bitmap bitimg = BitmapFactory.decodeResource(getResources(),R.drawable.internet);
// 알림의 콘텐츠와 채널 설정
builder = new NotificationCompat.Builder(this, "Channel_Id")
.setSmallIcon(R.drawable.receiveimg) // 작은 아이콘
.setContentTitle("제목!!") // 제목
.setContentText("본문!! 입니다~~~") // 본문 텍스트
.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(bitimg)) //이미지 추가!!
.setPriority(NotificationCompat.PRIORITY_DEFAULT) // 알림 우선순위
//밑에는 intent 사용해서 작성한거
.setContentIntent(pendingIntent) // 사용자가 탭하면 자동으로 알림을 삭제
.setAutoCancel(true);
// 알림 진짜 띄우게 하는거 (알림 표시)
// NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
// notificationManager.notify(0, builder.build()); // 0 줌
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 알림 진짜 띄우게 하는거 (알림 표시)
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(MainActivity.this);
notificationManager.notify(0, builder.build()); // 0 줌
}
});
}
// 채널 만들기
private void createNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { //SDK_INT 버전에서 조건에 의해 차단
CharSequence name = getString(R.string.channel_name); //채널이름
String description = getString(R.string.channel_description); //채널설명
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel("Channel_Id", name, importance);
channel.setDescription(description);
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
}
}
'■ Android > Tip' 카테고리의 다른 글
[Android] 브로드캐스트(BroadCast) - 1.수신 (0) | 2020.01.02 |
---|---|
[Android] Notification(노티피케이션), 알림 - (4)작업 버튼 추가 (0) | 2020.01.01 |
[Android] Notification(노티피케이션), 알림 - (2)기본사용법+설명 (0) | 2019.12.29 |
[Android] Notification(노티피케이션), 알림 - (1)설명 (0) | 2019.12.28 |
[Android] 인텐트(Intent)사용법(8) - 주소록 앱(구글) (0) | 2019.12.27 |