安卓开发: [HOW TO] intercept daily alarm and dismiss programmatically

标签 android android-activity broadcastreceiver alarmmanager dismiss

我想实现一个启动服务的 Activity ,该服务能够拦截/接收每日计划的时钟闹钟,并在触发事件(即识别语音事件)时以编程方式将其关闭。 在实践中我有:

public class MyReceiver extends BroadcastReceiver {
...
}

在 ALARM_ALERT_ACTION (com.android.deskclock.ALARM_ALERT) 上注册 [我读到这仅适用于系统时钟应用程序] 现在,当正确调用闹钟响铃 MyReceiver.onReceive(...) 方法时,我无法通过代码关闭(既不打盹)闹钟。 我发现许多示例使用带有 .cancel(PendingIntent) 方法调用的 AlarmManager 实例,但这可能仅在警报由自定义 Intent 安排时才有效。 我也尝试过获取所有正在运行的进程并终止 com.android.deskclock 进程,但这是一种行不通的方法。

所以,总而言之,我已经安排了系统 android 时钟应用程序的每日闹钟,我希望有一个服务可以拦截 com.android.deskclock.ALARM_ALERT 操作/事件并通过代码将其关闭。 在此先感谢大家。

最佳答案

我已经找到了如何做...检查下面的代码:

AlarmManager alrm = (AlarmManager)getApplicationContext().getSystemService(ALARM_SERVICE);
Intent intent = new Intent(MyService.ALARM_DISMISS_ACTION);
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
alrm.set(AlarmManager.RTC_WAKEUP, 1000, pi);

在实践中,根据这些说明,我启动了一个“解除”警报事件,这会导致当前警报响铃解除;)

再见

关于安卓开发: [HOW TO] intercept daily alarm and dismiss programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24512161/

相关文章:

javascript - 通过javascript中的phonegap覆盖android设备的后退按钮

android - 如何测试 Activity 的 onDestroy 方法

Android通知AlarmManager和BroadcastReceiver

android - 广播接收器中接收调用的优先级

java - 在完成之前将数据从一项 Activity 发送到另一项 Activity

android - BroadcastReceiver 从未调用过

android - 选择项目后,微调器下拉列表在 ListView 中绘制屏幕顶部

java - wait() 不强制线程等待?

android - Android Wear Action 后得到响应

android - 在另一个 Activity 中关闭 Progress Dialog ... Android