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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!