Не могу создать уведомление
Не могу создать уведомление в Android Studio и ошибок никаких не выдает
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
public class MainActivity extends AppCompatActivity {
Intent intent;
// PendingIntent pendingIntent = PendingIntent.getActivities(getApplicationContext(), 0, MainActivity);
public static String testOrTraining = "";
private static final String CHANNEL_ID = "Word channel";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClickBt(View v) {
switch(v.getId()) {
case R.id.words_training:
NotificationCompat.Builder builder =
new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
.setSmallIcon(R.mipmap.ic_launcher_round)
.setContentTitle("Напоминание")
.setContentText("Пора покормить кота")
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(MainActivity.this);
notificationManager.notify(1, builder.build());
intent = new Intent(this, worldTraining.class);
worldTraining.countRight = 0;
worldTraining.countFalse = 0;
testOrTraining = "training";
startActivity(intent);
break;
case R.id.test:
intent = new Intent(this, activityTest.class);
activityTest.countRight = 0;
activityTest.countFalse = 0;
testOrTraining = "test";
startActivity(intent);
break;
case R.id.changelanguage:
intent = new Intent(this, SetLanguage.class);
SetLanguage.language = "";
startActivity(intent);
}
}
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
NotificationCompat.Builder(MainActivity.this, CHANNEL_ID) не создает канал под идом CHANNEL_ID, он публикует в канал CHANNEL_ID, если он уже есть. Нужно создавать каналы вручную:
private static final String CHANEL_ID = "word_channel";
private static final String CHANEL_NAME = "Word channel";
private void createChannels() {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.O)
return;
//1) id 2) имя канала 3) приоритет
NotificationChannel channel = new NotificationChannel(CHANEL_ID, CHANEL_NAME, NotificationManager.IMPORTANCE_LOW);
NotificationManagerCompat.from(this).createNotificationChannel(channel);
}
Вызывайте данный метод перед показам уведомления.