Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
报警管理器android不工作_Android_Alarmmanager_Android Notifications_Android Alarms - Fatal编程技术网

报警管理器android不工作

报警管理器android不工作,android,alarmmanager,android-notifications,android-alarms,Android,Alarmmanager,Android Notifications,Android Alarms,无论发生什么情况,报警管理器都不工作 这是我的主要活动,它调用函数来设置单击报警。 没有显示额外的代码 public void setAlarm() { Log.i("alarm", "Here"); Long alertTimep = new GregorianCalendar().getTimeInMillis() + 5; Intent intent = new Intent(this, AlertReciever.class);

无论发生什么情况,报警管理器都不工作

这是我的主要活动,它调用函数来设置单击报警。 没有显示额外的代码

    public void setAlarm() {
        Log.i("alarm", "Here");
        Long alertTimep = new GregorianCalendar().getTimeInMillis() + 5;
        Intent intent = new Intent(this, AlertReciever.class);
        AlarmManager alarmManager = (AlarmManager)
getSystemService(ALARM_SERVICE);
        PendingIntent pi = PendingIntent.getBroadcast(this,1,intent,PendingIntent.FLAG_UPDATE_CURRENT);
        alarmManager.set(AlarmManager.RTC_WAKEUP, alertTimep, pi);
    }
这是我的AlertReceiver课程

    public class AlertReciever extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        showNotification(context);
        Log.i("alarm", "Here1");
    }

    public void showNotification(Context context) {
        Log.i("alarm", "Here2");
        Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        PendingIntent pIntent = PendingIntent.getActivity(context, 0, new Intent(context, NotificationReceiver.class), 0);

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
                .setContentTitle("Hello")
                .setContentText("How are You")
                .setSmallIcon(R.drawable.ic_menu)
                        //.setContentIntent(pIntent)
                        //.addAction(R.drawable.ic_edit, "View", pIntent)
                .setSound(soundUri)
                        //.addAction(0, "Remind", pIntent)
                .setAutoCancel(true);
        mBuilder.setContentIntent(pIntent);

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(0, mBuilder.build());
    }

}
基本思想是计划在给定日期生成通知,出于测试目的,我选择了5秒/毫秒

问题是alert receiver类没有被调用,应用程序也没有崩溃,因此我无法找出故障所在。我没有收到任何通知。


<receiver android:name="atsystems.cal.AlertReciever" />
我的清单文件中缺少了这一点,因为我补充说一切正常。 对于查看此代码的任何其他人,您还需要清单文件中的报警权限

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


这样做不需要许可。是的,只是在没有许可的情况下尝试了它,它仍然有效,谢谢你的提示。所有在线示例都提到了许可,但没有提到接收方部分。因此,如果它在没有许可的情况下有效,那么许可的具体用途是什么?