通过后台

时间:2016-12-07 04:51:26

标签: java android android-intent alarm

我正在制作应用并设置闹钟是其中一项功能。我现在不需要该应用程序成为独立的警报管理器。所以,我使用以下代码通过AlarmClock课程的ACTION_SET_ALARM设置闹钟:

Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_HOUR, hour);
i.putExtra(AlarmClock.EXTRA_MINUTES, minute);
i.putExtra(ALarmClock.EXTRA_MESSAGE, "Good Morning");
startActivity(i);

它可以很好地满足要求。但我的应用程序会打开系统的默认时钟,在按下按钮时自动设置闹钟。我不需要这样做。 我需要按下按钮,警报需要设置(现在也正在发生),但我不需要系统的时钟应用程序显示。我见过一些应用程序可以满足我的要求。

请设置闹钟后帮助我在后台设置闹钟/不打开时钟应用程序。 希望我已经清楚地表达了我的问题。

1 个答案:

答案 0 :(得分:2)

我通过阅读API找到了一种方法:)。您必须使用EXTRA_SKIP_UI设置为true。

    Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
    i.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
    i.putExtra(AlarmClock.EXTRA_HOUR, hour);
    i.putExtra(AlarmClock.EXTRA_MINUTES, minute);
    i.putExtra(AlarmClock.EXTRA_MESSAGE, "Good Morning");
    startActivity(i);

如API中所述

  

如果为true,则要求应用程序绕过任何中间UI。如果   false,应用程序可能会像确认一样显示中间UI   对话框或设置。

我自己进行了测试,如果使用此EXTRA,它会提示Toast设置警报而不使用任何其他应用程序。

修改

为了完整起见,您需要添加权限:

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

我首先忘记设置此权限,令我惊讶的是它仍然在模拟器中工作,但在设备中崩溃。

相关问题