警报管理器的每日通知无效

时间:2017-06-03 20:49:23

标签: android notifications alarmmanager

我添加了一切,比如在清单文件中添加接收器,添加所有权限仍然无法调用通知。我想给一个固定的时间,例子每天早上8点,上午12点,下午9点我想显示通知,该怎么办?请帮帮我。

清单权限

  <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />

接收者

  <receiver android:name=".Activity.Utils.AlertReceiver"> </receiver>

警报接收器类

public class AlertReceiver extends BroadcastReceiver {
NotificationManager notificationManager ;
boolean isNotificActive =  false ;

int id =1;

@Override
public void onReceive(Context context, Intent intent) {


    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);

    Intent notificationIntent = new Intent(context, DashBoard.class);
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 100,notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);


    Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(
            context).setSmallIcon(R.drawable.logo_medi)
            .setContentTitle("Alarm Fired")
            .setContentText("Events To be PErformed").setSound(alarmSound)
            .setAutoCancel(true).setWhen(when)
            .setContentIntent(pendingIntent)
            .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000});
    notificationManager.notify(100, mNotifyBuilder.build());
    id++;


    System.out.println("notification is calling ");


}

从适配器类设置警报

                  Calendar calendar = Calendar.getInstance();
                                    calendar.set(Calendar.HOUR_OF_DAY, hour);
                                    calendar.set(Calendar.MINUTE, min);
                                    calendar.set(Calendar.SECOND, 10);
                                    Intent intent1 = new Intent(context, DashBoard.class);
                                    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 100,intent1, PendingIntent.FLAG_UPDATE_CURRENT);
                                    AlarmManager am = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
                                    am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);

0 个答案:

没有答案