AlarmClockクラスを使用してアラームをセットする


AlarmClockクラスはAndroid SDK 2.3から追加されたクラスです。

AlarmClockクラスを使用することで、android.intent.action.SET_ALARMのアクションを持つIntentに連携し、アラームをセットすることができます。

続きでAlarmClockクラスの使用方法を説明します。

パーミッションの追加

AlarmClockクラスを使用するにはパーミッションにcom.android.alarm.permission.SET_ALARMを追加する必要があります。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="org.jpn.techbooster.sample.AlarmProviderSample"
 android:versionCode="1"
 android:versionName="1.0">
 <application android:icon="@drawable/icon" android:label="@string/app_name">

・・・省略・・・

 </application>
 <uses-sdk android:minSdkVersion="9" />

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

Intentの宣言と連携

public class AlarmProviderSample extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //Intentの宣言
        Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM);
        //アラームにセットする時間を指定
        intent.putExtra(AlarmClock.EXTRA_HOUR, 10);
        //アラームにセットするメッセージを指定
        intent.putExtra(AlarmClock.EXTRA_MESSAGE, "set by AlarmClock");
        //アラームにセットする分を指定
        intent.putExtra(AlarmClock.EXTRA_MINUTES, 10);

        startActivity(intent);
    }
}

まずAlarmClock.ACTION_SET_ALARMを指定してIntentを宣言します。
連携先に渡せるデータは3種類あります。
4行目ではアラームにセットする時間を指定しています。
6行目ではアラームにセットするメッセージを指定しています。
8行目ではアラームにセットする分を指定しています。
サンプル通りに記述しエミュレータで実行すると、10時10分に「set by AlarmClock」というトーストが表示されるアラームがセットされます。

セットされたアラームの内容はエミュレータのClockアプリで確認することができます。(冒頭のスクリーンショット参照)