Java 报警管理器不工作

Java 报警管理器不工作,java,android,alarmmanager,android-alarms,Java,Android,Alarmmanager,Android Alarms,我的应用程序中的报警管理器不工作。我做这里描述的一切 但警报不起作用。 这是我的密码: 清单 <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 活动 AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Inte

我的应用程序中的报警管理器不工作。我做这里描述的一切 但警报不起作用。
这是我的密码:

清单

    <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
活动

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.MINUTE, 30);

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
        calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

我不知道如何使它工作。请帮助我修复它。

首先,删除
设置报警
权限,因为它与此处无关

第二,您需要确保您的
日历
对象在未来。大多数情况下,您的日历将成为过去,因为您使用的是
calendar.set(calendar.HOUR\u of_DAY,1)
set(calendar.MINUTE,30)
。如果您在01:30之后执行此代码,它将成为过去。在这种情况下,您需要
add()

第三,在进行上述修复后,使用adb shell dumpsys alarm
查看您的报警是否已安排


第四,使用LogCat查看您的代码是否有任何警告或错误,例如,
AlarmReceiver
NotificationActivity
未在清单中注册。

您请求的是基于系统运行的实时时钟的警报,此处:

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
        calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
但你是根据一个普通的日历时钟来传递时间的。如果您希望使用基于日历的时钟发出警报,请改为说:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
        calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

请注意,
eassed\u REALTIME\u WAKEUP
RTC\u WAKEUP

@Jackky777:
adb
是安卓SDK中的一个程序,旨在通过命令行运行。
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
        calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);