如何检测何时在 Android 中设置了新警报
Posted
技术标签:
【中文标题】如何检测何时在 Android 中设置了新警报【英文标题】:How to detect when a new alarm is set in Android 【发布时间】:2015-04-20 06:52:32 【问题描述】:我想检测何时在 android 默认闹钟应用程序中设置了新闹钟(我使用的是三星设备)。 我试过: filter.addAction(AlarmManager.ACTION_NEXT_ALARM_CLOCK_CHANGED); 但它没有用。 PS:我的目标不是检测警报何时响起,而是使用广播接收器来监控何时创建新警报。
这是我正在使用的代码: IntentFilter filter = new IntentFilter("android.app.action.NEXT_ALARM_CLOCK_CHANGED"); filter.addAction("com.samsung.sec.android.clockpackage.alarm.SET_ALARM"); registerReceiver(mReceiver, 过滤器);
【问题讨论】:
请贴出你试过的代码。 【参考方案1】:从 API Level-21 及以上,您可以在您的 AndroidManifest.xml 中为注册的 BroadcastReceiver 使用以下解决方案。
<receiver
android:name=".YourAlarmReceiverClass"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED">
</action>
</intent-filter>
</receiver>
ACTION_NEXT_ALARM_CLOCK_CHANGED
是在 getNextAlarmClock() 返回的值发生变化后发送的,并且每次用户使用闹钟应用程序创建新闹钟时都会调用您的BroadcastReceiver's
onReceive
()。
【讨论】:
任何想法如何在棒棒糖之前的设备上做到这一点?【参考方案2】:intent AlarmManager.ACTION_NEXT_ALARM_CLOCK_CHANGED
只会在下一个要响铃的闹钟更改时触发,而不是在任何闹钟更改时触发。只要您不被允许获取设备中所有活动警报的列表......当添加一个警报时,您可能也不会被允许获得意图。没有任何意图可以满足您的要求。
【讨论】:
以上是关于如何检测何时在 Android 中设置了新警报的主要内容,如果未能解决你的问题,请参考以下文章