noficitations (notification.setLatestEventInfo ())에 더 이상 사용되지 않는 메서드를 사용하고 있음을 발견했습니다.
Notification.Builder를 사용하라는 메시지가 표시됩니다.
- 어떻게 사용하나요?
새 인스턴스를 만들려고하면 다음과 같은 메시지가 표시됩니다.
Notification.Builder cannot be resolved to a type
답변
이것은 API 11에 있으므로 3.0 이전 버전으로 개발하는 경우 이전 API를 계속 사용해야합니다.
업데이트 : NotificationCompat.Builder 클래스가 지원 패키지에 추가되었으므로이를 사용하여 API 레벨 v4 이상을 지원할 수 있습니다.
http://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html
답변
Notification.Builder API 11 또는 NotificationCompat.Builder API 1
이것은 사용 예입니다.
Intent notificationIntent = new Intent(ctx, YourClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(ctx,
YOUR_PI_REQ_CODE, notificationIntent,
PendingIntent.FLAG_CANCEL_CURRENT);
NotificationManager nm = (NotificationManager) ctx
.getSystemService(Context.NOTIFICATION_SERVICE);
Resources res = ctx.getResources();
Notification.Builder builder = new Notification.Builder(ctx);
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.some_img)
.setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.some_big_img))
.setTicker(res.getString(R.string.your_ticker))
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle(res.getString(R.string.your_notif_title))
.setContentText(res.getString(R.string.your_notif_text));
Notification n = builder.build();
nm.notify(YOUR_NOTIF_ID, n);
답변
여기에 선택된 답변 외에도 Source Tricks 의 NotificationCompat.Builder
클래스에 대한 샘플 코드가 있습니다 .
// Add app running notification
private void addNotification() {
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Notifications Example")
.setContentText("This is a test notification");
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
// Add as notification
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(FM_NOTIFICATION_ID, builder.build());
}
// Remove notification
private void removeNotification() {
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.cancel(FM_NOTIFICATION_ID);
}
답변
알림 빌더는 Android API 레벨 11 이상 (Android 3.0 이상)에만 적용됩니다.
따라서 Honeycomb 태블릿을 대상으로하지 않는 경우 알림 작성기를 사용하지 말고 다음 예제 와 같은 이전 알림 생성 방법을 따라야 합니다.
답변
android-N 업데이트 (2016 년 3 월)
자세한 내용은 알림 업데이트 링크를 참조하십시오.
- 직접 회신
- 번들 알림
- 사용자 정의보기
Android N을 사용하면 유사한 알림을 번들로 묶어 단일 알림으로 표시 할 수도 있습니다. 이를 가능하게하기 위해 Android N은 기존
NotificationCompat.Builder.setGroup()
방법을 사용합니다 . 사용자는 각 알림을 확장하고 알림 창에서 개별적으로 각 알림에 대해 응답 및 해제와 같은 작업을 수행 할 수 있습니다.이것은 NotificationCompat를 사용하여 알림을 보내는 간단한 서비스를 보여주는 기존 샘플입니다. 사용자가 읽지 않은 각 대화는 고유 한 알림으로 전송됩니다.
이 샘플은 Android N에서 사용할 수있는 새로운 알림 기능을 활용하도록 업데이트되었습니다.
샘플 코드 .
답변
알림을 빌드하는 데 문제가있었습니다 (Android 4.0 이상용으로 만 개발).
이 링크 는 내가 뭘 잘못하고 있는지 정확히 보여주고 다음과 같이 말합니다.
Required notification contents
A Notification object must contain the following:
A small icon, set by setSmallIcon()
A title, set by setContentTitle()
Detail text, set by setContentText()
기본적으로 나는 이것들 중 하나를 놓치고 있었다. 이 문제를 해결하기위한 기초로서, 최소한이 모든 것이 있는지 확인하십시오. 바라건대 이것은 다른 사람의 두통을 덜어 줄 것입니다.
답변
누구에게나 도움이되는 경우를 대비하여 … 새로운 오래된 API에 대해 테스트 할 때 지원 패키지를 사용하여 알림을 설정하는 데 많은 문제가있었습니다. 나는 그들이 최신 장치에서 작동하도록 할 수 있었지만 이전 장치에서 오류 테스트를 받게되었습니다. 마침내 나를 위해 일하게 된 것은 알림 기능과 관련된 모든 가져 오기를 삭제하는 것입니다. 특히 NotificationCompat 및 TaskStackBuilder. 처음에 내 코드를 설정하는 동안 지원 패키지가 아닌 최신 빌드에서 추가 된 가져 오기를 수행하는 것 같습니다. 그런 다음 나중에 이클립스에서 이러한 항목을 구현하려고 할 때 다시 가져 오라는 메시지가 표시되지 않았습니다. 이해가 되길 바라며 다른 사람에게 도움이되기를 바랍니다. 🙂