#android
#Android
Вопрос:
Это код, который я пытаюсь использовать для этого. У меня нет никаких ошибок в android Studio, но при нажатии кнопки ничего не происходит. Я еще не на 100% в Android Studio, так что не переоценивайте малейшие ошибки.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate ( savedInstanceState );
setContentView ( R.layout.activity_notifications );
Button btncreate = findViewById (
R.id.btnCreateNotification );
btncreate.setOnClickListener ( new
View.OnClickListener () {
@Override
public void onClick(View view) {
createNotification();
}
} );
public void createNotification(){
Intent intent = new Intent (this,
NotificationRecieverActivity.class);
PendingIntent pendingIntent =
PendingIntent.getActivities (this,(int)
System.currentTimeMillis (), new Intent[]{intent}, 0 );
Notification notification = new Notification.Builder
(this )
.setContentTitle("Title Notification")
.setContentText("this is the title notification")
.setSmallIcon(R.drawable.notificationbell)
.setContentIntent(pendingIntent)
.build();
NotificationManager notificationManager =
(NotificationManager) getSystemService (
NOTIFICATION_SERVICE );
notification.flags =
Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, notification);
}
}
Ответ №1:
если вы используете приведенный выше код под версией oreo, он будет работать отлично, но с версии oreo уведомление изменено, пожалуйста, смотрите Ответ…
В Вашей Деятельности……….
createChannel()
NotificationCompat.Builder builder=new NotificationCompat.Builder(this,
NOTIFICATION_CHANNEL_ID);
builder
.setShowWhen(false)
.setSmallIcon(android.R.drawable.ic_media_play)
.setLargeIcon(description.getIconBitmap())
.setColor(this.getResources().getColor(R.color.colorPrimaryDark))
.setContentTitle(description.getTitle())
.setContentText(description.getSubtitle())
.setContentIntent(ContentPI)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.addAction(android.R.drawable.ic_media_previous,"",backPI)
.addAction(index,"",PPIntent)
.addAction(android.R.drawable.ic_media_next,"",nextPI)
.addAction(android.R.drawable.ic_menu_close_clear_cancel,"",StopPi)
.setColorized(true)
startForeground(id, builder.build());
Способ создания канала…
public void createChannel()
{
NotificationChannel channel;
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O)
{
channel=new NotificationChannel(NOTIFICATION_CHANNEL_ID,
"Channel one" , NotificationManager.IMPORTANCE_LOW);
channel.setLightColor(Color.BLUE);
channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
NotificationManager manager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
assert manager != null;
manager.createNotificationChannel(channel);
}
Комментарии:
1. Хорошо, я бы попробовал это, спасибо. Но куда мне поместить код, относящийся к моменту касания уведомления, чтобы приложение открывалось в указанном действии
2. вы должны указать свое ожидающее намерение открыть действие в .setContentIntent()