Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Wie funktionieren Intents?<br />
Wenn Sie sich eine Aktivität (android.app.<br />
Aktivität) als einen Grundstein vorstellen,<br />
auf dem alle anderen <strong>Android</strong>-Anwendungen<br />
aufbauen, dann sind Intents der Klebstoff,<br />
der diese Aktivitäten miteinander verbindet.<br />
Dadurch kann der Anwender flexibel von<br />
einer Aktivität auf die nächste wechseln [4].<br />
Ein Intent-Objekt (android.content.Intent)<br />
besteht aus zwei Teilen: die Aktion,<br />
die ausgeführt wird, und die Daten, die verarbeitet<br />
werden. Wenn Sie einen Intent erstellen<br />
und verschicken, weisen Sie im Prinzip<br />
das Betriebssystem an, eine vorher definierte<br />
Aufgabe an eine bestimmte Aktivität<br />
zu delegieren. So ruft zum Beispiel ein Intent,<br />
der die Aktion ACTION_VIEW ausführt<br />
und als Datenquelle die URL einer Webseite<br />
bekommt, die Browser-Aktivität auf, da diese<br />
Aktivität die geforderte Kombination aus Aktion<br />
und Datenquelle unterstützt.<br />
Uri address = Uri.parse("http://www.perlgurl.<br />
org");<br />
Intent surf = new Intent(Intent.ACTION_VIEW,<br />
address);<br />
startActivity(surf);<br />
Das <strong>Android</strong>-Betriebssystem sucht nach der<br />
passenden Aktivität für die im Intent festgelegte<br />
Kombination aus Aktion und Datenquelle<br />
und wird bei der Browser-Anwendung<br />
fündig. <strong>Android</strong> lädt den Browser im Vordergrund<br />
– Ihre Aktivität bleibt inaktiv im Hintergrund.<br />
Der Browser lädt die gewünschte<br />
Webseite (Abbildung 2). Wenn der Anwender<br />
den Browservorgang beendet, aktiviert<br />
<strong>Android</strong> die Aktivität, die den Intent generiert<br />
hat – Ihre App.<br />
Intents und Aktivitäten<br />
<strong>Android</strong> führt genau Buch über alle auf<br />
einem Gerät installierten Anwendungen<br />
sowie über alle Aktivitäten, die im <strong>Android</strong>-<br />
Manifest deklariert wurden. Die -<br />
Definition in der Manifest-Datei bestimmt,<br />
welche Aktionen und Datentypen eine Aktivität<br />
verarbeiten kann; diese Fähigkeiten veröffentlicht<br />
<strong>Android</strong> per Intent-Filter. Das System<br />
nutzt diese Informationen, um einen<br />
Intent mit den Aktivitäten zu verknüpfen.<br />
Dabei wählt es die Aktivität, die am besten<br />
dazu geeignet ist, den Request während der<br />
Laufzeit abzuarbeiten.<br />
Doch wie weiß <strong>Android</strong> in diesem Fall<br />
nun, welche Anwendung am besten zum Intent<br />
passt? Wenn es mehrere Aktivitäten gibt,<br />
die zu einem Intent passen, dann entscheidet<br />
der Anwender, welches Programm zum Einsatz<br />
kommen soll. Dies ist ein Merkmal, das<br />
Geräte auf <strong>Android</strong>-Basis grundlegend von<br />
anderen mobilen Plattformen unterscheidet.<br />
Die Flexibilität bei der Koppelung von Intents<br />
zahlt sich aus – sowohl für Entwickler<br />
als auch für Anwender. Diese Architektur<br />
macht es möglich, dass mehrere Anwendungen,<br />
wie zum Beispiel alternative Browser<br />
oder E-Mail-Clients sich nicht stören.<br />
Die Applikation im Vordergrund (zum Beispiel<br />
Ihre eigene) muss nicht wissen, welche<br />
Anwendung den Intent verarbeitet, sie muss<br />
nur die Gewissheit haben, dass der Intent<br />
verarbeitet wird. Der Entwickler muss sich<br />
kaum darum kümmern, welche Applikationen<br />
auf einem Gerät installiert oder verfügbar<br />
sind. Er muss keinen speziellen Programmcode<br />
für verschiedene E-Mail-Clients<br />
oder Internet-Browser schreiben. Stattdessen<br />
verwendet er Intents, um <strong>Android</strong> mitzuteilen,<br />
welche Aktion es ausführen soll.<br />
Der Nutzer entscheidet<br />
<strong>Android</strong> spielt die Rolle des Vermittlers und<br />
übergibt die auszuführende Aufgabe an alle<br />
installierten Anwendungen, die von sich behaupten,<br />
die Anfrage bearbeiten zu können.<br />
Ein weiterer positiver Effekt besteht darin,<br />
dass <strong>Android</strong> bei neu installierten Anwen-<br />
verBessern sie ihre Apps durCh intents<br />
Intents eignen sich hervorragend, um Ihre Anwendungen um ein paar mächtige Funktionen zu erweitern.<br />
Mit Intents lassen sich unter anderem folgende Aufgaben lösen:<br />
* Eine E-Mail- oder SMS-Applikation starten und eine Nachricht versenden<br />
* Die Browser-Anwendung aufrufen und eine Internetseite öffnen oder eine Internetsuche<br />
durchführen<br />
* Die Dialer-App starten und eine bestimmte Nummer wählen<br />
* Die Maps-Anwendung aufrufen und gezielt eine Kartenposition auswählen<br />
* Die Kamera-Anwendung starten und ein Foto machen oder ein Video aufnehmen<br />
* Die Gallery-Anwendung starten und ein Foto auswählen<br />
* Die Kontakteverwaltung starten und einen Eintrag auswählen<br />
* Sprachaufnahmen machen und die Aufnahme mit der Spracherkennungssoftware bearbeiten<br />
devCorner<br />
Intents in <strong>Android</strong><br />
Abb. 2: Dieser Intent führt die Aktion<br />
ACTION_VIEW aus, um Webinhalte zu<br />
betrachten.<br />
Abb. 3: Mehrere Apps können dieselben<br />
Intent-Typen unterstützen. Der<br />
Anwender wählt aus, welches Programm<br />
zum Einsatz kommen soll.<br />
Das Beispiel zeigt die Browser-Auswahl<br />
für den Intent ACTION_VIEW, um<br />
Webinhalte anzuzeigen.<br />
AndroId-user.de FebruAr 2012 111