2011-01-08

Neues in Android 2.3: AlarmClock

Es sind nicht nur die großen Neuerungen, die Android von Version zu Version runder machen. Auch kleine Verbesserungen können Entwicklern das Leben erleichtern. Die neue Klasse android.provider.AlarmClock gehört zu dieser Kategorie. Sie enthält die Konstanten ACTION_SET_ALARM, EXTRA_MESSAGE, EXTRA_HOUR und EXTRA_MINUTES, mit denen eine Activity zum Anlegen eines Alarms (für eine Wecker-App) gestartet werden kann. Dies funktioniert folgendermaßen:

Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM);
intent.putExtra(AlarmClock.EXTRA_MESSAGE, "Tommis Blog");
intent.putExtra(AlarmClock.EXTRA_HOUR, 19);
intent.putExtra(AlarmClock.EXTRA_MINUTES, 55);
startActivity(intent);
Java2html
Falls mehr als eine Wecker-Anwendung installiert ist, erscheint die folgende Android-typische Auswahl:
Auswahl der zu verwendenden Wecker-App
Auswahl der zu verwendenden Wecker-App
Anwendungen, die ACTION_SET_ALARM empfangen möchten, legen eine Activity für die Behandlung dieses Intents an. Hierzu ist das Recht com.android.alarm.permission.SET_ALARM nötig, übrigens auch für das Versenden.
Zur Demonstration eine Manifestdatei:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.thomaskuenneth"
      android:versionCode="1"
      android:versionName="1.0">
     
    <application android:icon="@drawable/icon" android:label="@string/app_name">
   
        <activity android:name=".AlarmClockDemo"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
    <activity android:name="SetAlarmActivity">
            <intent-filter>
                <action android:name="android.intent.action.SET_ALARM" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
    </activity>

    </application>

    <uses-sdk android:minSdkVersion="9" />
  <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
 
</manifest>
Java2html
Die Activity kann mittels getIntent() auf die aufrufende Intent und die ggf. übergebenen Extras zugreifen.

No comments:

Post a Comment