Я работаю с Android API 28.
Через AlarmManager
я хотел отправить push-уведомление в определенное время в Service
. Таким образом, в сервисе alarmManager
устанавливает конкретную продолжительность отправки push-уведомления.
Я пытался это сделать, поэтому искал какой-то пример. Это работало на «Зефире 6.0 и Нуге 7.0».
Но не работает на моем телефоне (Android Pie 9.0).
Только я обнаружил, что работает "Уведомление о работе", но мне нужно съемное уведомление от службы.
Как я могу это сделать? Мне нужна ваша помощь. Спасибо, что прочитали мой вопрос.
ДОБАВЛЕННЫЙ КОД
nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
tabletnoti_channel = new NotificationChannel(TABLETNOTI_ID, getString(R.string.noti), NotificationManager.IMPORTANCE_DEFAULT);
tabletnoti_channel.setDescription(getString(R.string.app_name));
tabletnoti_channel.enableLights(true);
tabletnoti_channel.setLightColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimary));
tabletnoti_channel.enableVibration(true);
tabletnoti_channel.setVibrationPattern(new long[]{100, 200, 100, 200});
tabletnoti_channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
nm.createNotificationChannel(tabletnoti_channel);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Statebuilder = new Notification.Builder(getApplicationContext(), TABLETNOTI_ID);
} else {
Statebuilder = new Notification.Builder(getApplicationContext());
}
StateBuilder.setContentTitle(sharedPreferences.getString("connectDevice", "sample") + " " + getString(R.string.device_bat))
.setContentText(getString(R.string.not_connected))
.setOngoing(true)
.setShowWhen(false)
.setColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimary))
.setSmallIcon(R.drawable.ic_cloud_off)
.setOnlyAlertOnce(true);
if (sharedPreferences.getBoolean("show_noti", true)) nm.notify(STATE_NOTI_ID, StateBuilder.build());
else nm.cancel(STATE_NOTI_ID);