Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package github.io.rahmatsyam.alarammanager;
- import android.app.AlarmManager;
- import android.app.NotificationChannel;
- import android.app.NotificationManager;
- import android.app.PendingIntent;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.media.RingtoneManager;
- import androidx.core.app.NotificationCompat;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- public class AppReceiver extends BroadcastReceiver {
- PendingIntent pendingIntent;
- private static final int ALARM_REQUEST_CODE = 134;
- //set interval notifikasi 10 detik
- int interval_seconds = 10;
- NotificationManager alarmNotificationManager;
- String NOTIFICATION_CHANNEL_ID = "rasupe_channel_id";
- String NOTIFICATION_CHANNEL_NAME = "rasupe channel";
- int NOTIFICATION_ID = 1;
- @Override
- public void onReceive(Context context, Intent intent) {
- Intent alarmIntent = new Intent(context, AppReceiver.class);
- pendingIntent = PendingIntent.getBroadcast(context, ALARM_REQUEST_CODE, alarmIntent, 0);
- int hour = intent.getIntExtra("HOUR", 0);
- int minute = intent.getIntExtra("MINUTE", 0);
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(System.currentTimeMillis());
- calendar.add(Calendar.HOUR_OF_DAY, 13);
- calendar.add(Calendar.MINUTE, 17);
- if (intent.getAction() != null) {
- AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
- if (intent.getAction().equalsIgnoreCase("android.intent.action.BOOT_COMPLETED") && alarmManager != null) {
- alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
- }
- }
- sendNotification(context, intent);
- }
- private void sendNotification(Context context, Intent intent) {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MM yyyy HH:mm:ss");
- String dateTime = simpleDateFormat.format(new Date());
- String notif_title = "Test 1";
- String notif_content = "Notif time " + dateTime;
- alarmNotificationManager = (NotificationManager) context
- .getSystemService(Context.NOTIFICATION_SERVICE);
- intent = new Intent(context, MainActivity.class);
- intent.putExtra("notifkey", "notifvalue");
- PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
- intent, PendingIntent.FLAG_UPDATE_CURRENT);
- //cek jika OS android Oreo atau lebih baru
- //kalau tidak di set maka notifikasi tidak akan muncul di OS tersebut
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
- int importance = NotificationManager.IMPORTANCE_HIGH;
- NotificationChannel mChannel = new NotificationChannel(
- NOTIFICATION_CHANNEL_ID, NOTIFICATION_CHANNEL_NAME, importance);
- alarmNotificationManager.createNotificationChannel(mChannel);
- }
- //Buat notification
- NotificationCompat.Builder alamNotificationBuilder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID);
- alamNotificationBuilder.setContentTitle(notif_title);
- alamNotificationBuilder.setSmallIcon(R.mipmap.ic_launcher);
- alamNotificationBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
- alamNotificationBuilder.setContentText(notif_content);
- alamNotificationBuilder.setAutoCancel(true);
- alamNotificationBuilder.setContentIntent(contentIntent);
- //Tampilkan notifikasi
- alarmNotificationManager.notify(NOTIFICATION_ID, alamNotificationBuilder.build());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement