当闹钟被取消或完成时,用户通过电话时钟设置的每个闹钟都可以选择打开另一个应用程序(我不确定在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);
答案 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
}
}