10.08.2012 Aufrufe

Android User RAZR

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

wendung der Bezeichnung auslesen und<br />

schreiben, indem Sie die entsprechenden<br />

put()- oder get()-Methoden verwenden, die<br />

in der Intent-Klasse zur Verfügung stehen.<br />

Bei der Übermittlung von zusätzlichen Informationen<br />

zwischen Ihren Aktivitäten können<br />

Sie beliebige weitere Eigenschaften definieren,<br />

die Sie gerade benötigen. Es hat sich<br />

die Konvention eingebürgert, die Paketnamen<br />

der Anwendung als Präfix für die Bezeichnung<br />

des Extra zu benutzen. Der folgende<br />

Beispielcode zeigt einen Intent mit<br />

einem Extra, das den aktuellen Level eines<br />

Spiels als ganzzahligen Wert speichert:<br />

Intent intent = new<br />

Intent(getApplicationContext(), GameActivity.<br />

class);<br />

intent.putExtra("com.mamlambo.mygame.LEVEL",<br />

7);<br />

startActivity(intent);<br />

Die neue Aktivität GameActivity greift als Teil<br />

der onCreate()-Methode auf den Intent zu<br />

und liest aus dem Extra-Teil die Informationen<br />

zum Level aus.<br />

Intent callingIntent = getIntent();<br />

int helpLevel = callingIntent.<br />

getIntExtra("com.mamlambo.mygame.LEVEL", 1);<br />

Viele der häufig eingesetzten Intents verwenden<br />

Extras. Verschiedene Intents unterstützen<br />

unterschiedliche Extras, deswegen müssen<br />

Sie in der <strong>Android</strong>-SDK-Dokumentation<br />

nachlesen, welche Extras konkret unterstützt<br />

werden. Der Intent ACTION_SEND beispielsweise<br />

wird dazu verwendet, Bild- oder Textdateien<br />

zu senden; dieser Intent ermöglicht<br />

Funktionen wie die von Social-Media-Plattformen<br />

bekannte Option Mit Freunden Teilen.<br />

Der Intent ACTION_SEND unterstützt eine<br />

Reihe von Extras, darunter EXTRA_SUBJECT,<br />

EXTRA_EMAIL, EXTRA_CC und EXTRA_BCC.<br />

Die Aktivität, die den Intent verschickt,<br />

kann also durch diese Extras u.a. den Betreff<br />

der Nachricht angeben. Darüber hinaus lassen<br />

sich die E-Mail-Adresse sowie CC- und<br />

BCC-Empfänger bestimmen. Eine Anwendung,<br />

die diesen Intent empfängt und verarbeitet,<br />

kann diese Extras dazu benutzen, die<br />

entsprechenden Adress- und Textfelder automatisch<br />

vorzubelegen, was dem Anwender<br />

etwas Tipperei erspart.<br />

Picker Intents<br />

Ein sehr mächtiger Aktivitätstyp ist der<br />

Picker. Picker-Aktivitäten starten Sie über die<br />

Methode startActivityForResult(). Sie<br />

präsen tieren dem Anwender ein Liste von<br />

Objekten, aus der er oder sie eine Auswahl<br />

treffen kann; das ausgewählte Objekt wird<br />

dann an die Eltern-Aktivität zurückgegeben.<br />

Mit wenigen Zeilen Code betten Sie in Ihre<br />

Aktivität einen Picker ein, der es dem Anwender<br />

ermöglicht, ein bestimmtes Bild,<br />

einen Kontakt oder einen Klingelton auszuwählen;<br />

die Aktivität kann dann das Ergebnis<br />

weiterverarbeiten. Picker Aktivitäten startet<br />

man häufig mit der Intent-Aktion ACTION_<br />

PICK; es gibt allerdings einige spezialisierte<br />

Picker-Aktivitäten, wie zum Beispiel den<br />

Klingelton-Picker, die über eigene Aktionstypen<br />

verfügen (zum Beispiel ACTION_RING­<br />

TONE_PICKER).<br />

Ein Beispiel für eine Picker-Aktivität finden<br />

Sie im untenstehenden Listing. Als Datenquelle<br />

benutzt der Picker per URI den Speicherort<br />

der auf dem Gerät abgelegten Bilddateien,<br />

der Aktionstyp lautet ACTION_PICK. Dadurch<br />

wählt der Anwender ein Bild in der<br />

Foto-Anwendung aus (Abbildung 7).<br />

Intent galleryPicker = new Intent(Intent.<br />

ACTION_PICK,<br />

MediaStore.Images.Media.INTERNAL_CONTENT_URI);<br />

startActivityForResult(galleryPicker, GALLERY_<br />

PICKER_RESULT);<br />

Intents lassen sich auch zur Verbreitung von<br />

wichtigen Ereignissen im gesamten Betriebssystem<br />

nutzen. Ihre Anwendungen können<br />

Intents verschicken, in die sich andere Applikationen<br />

quasi einklinken, was ihre Funktionsfähigkeit<br />

vielfältig erweitert. So kann beispielsweise<br />

eine E-Mail-Applikation immer<br />

dann einen Broadcast-Intent verschicken,<br />

wenn eine neue E-Mail eingeht. Spamschutz-<br />

oder Antivirus-Programme können auf diese<br />

Systemnachricht reagieren, indem sie die<br />

neue E-Mail einem Scan unterziehen.<br />

Systemnachrichten verbreiten<br />

<strong>Android</strong> teilt viele Systemereignisse per<br />

Broadcast mit. Wenn es beispielsweise bei<br />

niedrigem Akkustand eine Warnung verschickt<br />

(ACTION_BATTERY_LOW), können Applikationen<br />

darauf reagieren, indem sie Daten<br />

sichern, Netzwerkaktivitäten einschränken<br />

oder den Akku schonende Einstellungen<br />

wählen. Anwendungen verschicken Broadcast-Intents<br />

mittels der Methode sendBroadcast();<br />

um Broadcast Intents zu empfangen,<br />

müssen sie als Empfangskomponenten mit<br />

den entsprechenden Intent-Filtern registriert<br />

sein, außerdem muss ein BroadcastReceiver<br />

implementiert sein. Happy Intents! ● ● ●<br />

devCorner<br />

Abb. 7: Auswahl eines Bildes in der<br />

Gallery-App mittels ACTION_PICK.<br />

Shane Conder und Lauren Darcey<br />

haben mehrere Lehrbücher zur<br />

Entwicklung mobiler Software<br />

verfasst, darunter <strong>Android</strong> Wireless<br />

Application Development<br />

und SAMS Teach Yourself <strong>Android</strong><br />

Application Development in<br />

24 Hours. Sie erreichen die Autoren<br />

per E-Mail über die Adresse<br />

androidwirelessdev+sm@gmail.<br />

com oder über ihr Blog unter der<br />

Adresse http:// androidbook.<br />

blogspot. com.<br />

infos<br />

Intents in <strong>Android</strong><br />

ÜBer die Autoren<br />

[1] Quellcode zum Artikel<br />

http:// code. google. com/ p/ an<br />

droid‑mastering‑intents‑<br />

tutorial/<br />

[2] <strong>Android</strong>-SDK:<br />

http:// developer. android.<br />

com/ sdk/<br />

[3] Intents-Entwicklerdokumentation:<br />

http:// developer.<br />

android. com/ reference/<br />

android/ content/ Intent. html<br />

[4] Starten von Google-Anwendungen<br />

per Intent:<br />

http:// developer. android.<br />

com/ guide/ appendix/<br />

g‑app‑intents. html<br />

[5] OpenIntents.org<br />

Intent-Verzeichnis:<br />

http:// www. openintents. org/<br />

en/ intentstable<br />

AndroId-user.de FebruAr 2012 113

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!