在BACKGROUND中通过android AlarmClock class设置闹钟
Set alarm through android AlarmClock class in BACKGROUND
我正在制作一个应用程序,设置闹钟是其中一项功能。我现在不需要该应用程序作为独立的警报管理器。因此,我使用以下代码通过 AlarmClock class 的 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);
它很好地满足了要求。但是我的应用程序会打开系统的默认时钟 post 并在按下按钮时自动设置闹钟。我不需要这种情况发生。
我需要按下按钮,需要设置闹钟(现在也正在发生)但我不需要系统的时钟应用程序出现。我已经看到一些应用程序可以满足我的要求。
请帮我在后台设置闹钟/设置闹钟后不要打开时钟应用程序。
希望我已经清楚地表达了我的问题。
我通过阅读 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
中所述
If true, the application is asked to bypass any intermediate UI. If
false, the application may display intermediate UI like a confirmation
dialog or settings.
我自己测试过,如果使用这个EXTRA,它会在不使用任何其他应用程序的情况下提示设置闹钟的Toast。
编辑
为了完整起见,您需要添加权限:
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"></uses-permission>
我第一次忘记设置这个权限,令我惊讶的是它在模拟器中仍然有效,但在设备中崩溃了。
我正在制作一个应用程序,设置闹钟是其中一项功能。我现在不需要该应用程序作为独立的警报管理器。因此,我使用以下代码通过 AlarmClock class 的 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);
它很好地满足了要求。但是我的应用程序会打开系统的默认时钟 post 并在按下按钮时自动设置闹钟。我不需要这种情况发生。 我需要按下按钮,需要设置闹钟(现在也正在发生)但我不需要系统的时钟应用程序出现。我已经看到一些应用程序可以满足我的要求。
请帮我在后台设置闹钟/设置闹钟后不要打开时钟应用程序。 希望我已经清楚地表达了我的问题。
我通过阅读 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
中所述If true, the application is asked to bypass any intermediate UI. If false, the application may display intermediate UI like a confirmation dialog or settings.
我自己测试过,如果使用这个EXTRA,它会在不使用任何其他应用程序的情况下提示设置闹钟的Toast。
编辑
为了完整起见,您需要添加权限:
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"></uses-permission>
我第一次忘记设置这个权限,令我惊讶的是它在模拟器中仍然有效,但在设备中崩溃了。