Android:闹钟完成或取消后打开活动

时间:2016-03-12 12:18:38

标签: android alarmmanager

当闹钟被取消或完成时,用户通过电话时钟设置的每个闹钟都可以选择打开另一个应用程序(我不确定在Marshmallow中是否添加了此功能但我拥有它和我运行android M)。

每个闹钟的默认值为"无"但是你可以选择邮件,天气,音乐应用等... 我想将我的应用程序添加到此列表中,以便在警报完成后直接打开。

我的应用程序需要哪些设置才能显示在此列表中,以及如何将其设置为特定警报的默认应用程序(应该额外添加什么)

Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_MESSAGE, "New Alarm");
i.putExtra(AlarmClock.EXTRA_HOUR, 10);
i.putExtra(AlarmClock.EXTRA_MINUTES, 30);
startActivity(i);

1 个答案:

答案 0 :(得分:0)

所以似乎没有选项可以将您的应用添加到所需的列表中,从而允许用户在警报被解除或完成后立即选择要打开的应用程序。

我的另一个解决方案是通过广播接收器收听解雇或完成的特定事件。这可能有点棘手,因为事件根据设备有多个名称。

我有LG手机所以我的活动是 com.lge.clock.alarmalert.stop ,但你必须弄清楚每个设备的事件是什么。我见过一些与this one类似的话题。

这是我对接收者的明确声明:

<receiver android:name=".Receiver.AlarmBroadcastReceiver">
    <intent-filter>
        <action android:name="com.android.deskclock.ALARM_DISMISS" />
        <action android:name="com.android.deskclock.ALARM_DONE" />
        <action android:name="com.lge.clock.alarmalert.stop" />
    </intent-filter>
</receiver>

Deskclock是在某些设备上运行的默认股票时钟,正如我所提到的,我必须找到LG手机的动作并添加它。

接收者:

@Override
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    if (action.equals("com.android.deskclock.ALARM_DISMISS") || action.equals("com.android.deskclock.ALARM_DONE") || action.equals("com.lge.clock.alarmalert.stop"))
    {
        ////Do Something
    }
}