10.08.2012 Aufrufe

Android User RAZR

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

devCorner<br />

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

Abb. 4: Viele Anwendungen unterstützen<br />

Intents, bei denen die Aktion<br />

ACTION_SEND zum Hochladen von<br />

Bildern ausgeführt werden soll.<br />

Abb. 5: Der E-Mail-Client fügt bei der<br />

Aktion ACTION_SEND die Bilddatei im<br />

nächsten Schritt als Anhang in eine<br />

neue E-Mail ein.<br />

Abb. 6: Die Facebook-App lädt die<br />

Bilddatei in Ihr Konto auf der Plattform<br />

hoch (üblicherweise in das<br />

Fotoalbum Handy-Uploads).<br />

112<br />

dungen die Fähigkeiten der App kennt und<br />

die bereits installierten die Möglichkeiten des<br />

neuen Programms kennen. So kann es durchaus<br />

möglich sein, dass die Applikation, mit<br />

der ein Anwender eine bestimmte Aufgabe<br />

ausführt, noch gar nicht existiert hat, als Sie<br />

Ihre App programmiert haben.<br />

Gibt es mehrere Anwendungen, die darum<br />

konkurrieren, eine Aufgabe zu erledigen,<br />

dann fordert <strong>Android</strong> den Anwender auf, aus<br />

einer Liste das gewünschte Programm auszuwählen<br />

(Abbildung 3). Soll ein Intent stets<br />

auf das gleiche Programm zugreifen (zum<br />

Beispiel den bevorzugten Browser), dann<br />

kann man dies über die Option Standardmäßig<br />

für diese Aktion verwenden einstellen.<br />

Nehmen wir ein anderes Beispiel. Anwender<br />

wollen häufig digitale Fotos im Internet<br />

mit ihren Freunden teilen. Eine Anwendung<br />

könnte nun einen Intent mit dem Aktionstyp<br />

ACTION_SEND erzeugen und als Datenquelle<br />

eine Bilddatei festlegen. Viele Apps unterstützen<br />

diese Art von Intent (Abbildung 4),<br />

aber jede führt das Hochladen auf ihre eigene<br />

Art und Weise durch. So fügt zum Beispiel<br />

der E-Mail-Client das Foto als Anhang<br />

zu einer neuen E-Mail hinzu (Abbildung 5),<br />

wohingegen Facebook- und Twitter-Apps das<br />

Foto direkt ins soziale Netzwerk hochladen.<br />

Aber was passiert, wenn keine passende<br />

Anwendung auf dem Gerät installiert ist?<br />

Ihre Applikation kann überprüfen, ob Aktivitäten<br />

auf dem Gerät existieren, die zum Ausführen<br />

bestimmter Intents geeignet sind.<br />

Dazu kommen die Methoden, die die PackageManager-Klasse<br />

deklariert, zum Einsatz,<br />

zum Beispiel queryIntentActivities()<br />

oder queryBroadcastReceivers(). Diese Methoden<br />

ermöglichen es Ihnen, den Nutzern<br />

Ihres Programms Funktionen anzubieten, die<br />

nur dann aktiv sind, wenn entsprechende<br />

Applikationen auf dem Gerät existieren, die<br />

die nötigen Aktionen auch ausführen können.<br />

Verschiedene Aktionen<br />

Es gibt eine Reihe von Standard-Aktionen,<br />

wie zum Beispiel ACTION_VIEW, ACTION_EDIT<br />

und ACTION_SEND, die auf der <strong>Android</strong>-Plattform<br />

universell einsetzbar sind. Wenn Sie in<br />

Ihren Intents diese Standards verwenden,<br />

dann können Sie davon ausgehen, dass Ihre<br />

Apps mit anderen <strong>Android</strong>-Anwendungen<br />

kompatibel sind. Da mit jeder neuen <strong>Android</strong>-Version<br />

neue Aktionstypen hinzukommen,<br />

sollten Sie sich aber in puncto Kompatibilität<br />

mit der Entwicklerdoku vertraut machen.<br />

Entwickler können auch eigene Aktionen<br />

und Datentypen für ihre Intents schaffen.<br />

Durch die Verwendung von maßgeschneiderten<br />

Intents lassen sich komplexe Programme<br />

entwickeln. Wenn Sie jedoch anderen Entwicklern<br />

die Möglichkeit bieten wollen, ihre<br />

Applikationen in Ihr Programm zu integrieren,<br />

dann müssen Sie alle die von Ihrer Anwendung<br />

unterstützten Intents dokumentieren.<br />

Sie sollten dazu in Betracht ziehen, die<br />

von Ihnen erstellten Intents in ein externes,<br />

zentrales Register einzutragen, zum Beispiel<br />

bei Openintents.org [5].<br />

Aktivitäten wechseln<br />

<strong>Android</strong>-Applikationen bestehen aus mehreren<br />

Aktivitäten, wobei jede Aktivität einen<br />

Bildschirm oder eine Funktion darstellt.<br />

Während der Lebensdauer einer Anwendung<br />

wechselt der Anwender zwischen mehreren<br />

Aktivitäten. Der folgende Programmcode ruft<br />

die Methode startActivity() auf, die einen<br />

expliziten Intent enthält, der genau festlegt,<br />

welche Aktivität danach gestartet werden<br />

soll, und zwar durch den Klassennamen:<br />

startActivity(new Intent(<br />

getApplicationContext(),<br />

MyOtherActivity.class));<br />

Dieser Intent teilt der <strong>Android</strong>-Plattform mit,<br />

dass sie eine Aktivität namens MyOtherAktivität<br />

starten soll. Diese Klasse muss anderswo<br />

innerhalb der Applikation implementiert<br />

sein und muss einen Eintrag in der <strong>Android</strong>-Manifest-Datei<br />

Ihrer Anwendung haben,<br />

um einwandfrei zu funktionieren.<br />

Alternativ können Sie die Methode start­<br />

ActivityForResult() zum Starten Ihrer<br />

Aktivität verwenden. Aktivitäten geben<br />

manchmal Ergebnisse an die Eltern-Aktivität<br />

zurück. So liefert zum Beispiel der Contact<br />

Picker Informationen über den Kontakt, den<br />

ein Anwender ausgewählt hat. Die Eltern-Aktivität<br />

muss eine Ergebnisrückgabe anfordern,<br />

indem die Aktivität mittels der Methode<br />

start ActivityForResult() gestartet<br />

wird. Das Ergebnis verarbeitet dann die Methode<br />

onActivityResult() der Eltern-Aktivität<br />

weiter. Die Ergebnisdaten speichert das<br />

System ebenfalls innerhalb eines Intents.<br />

Zusätzliche Informationen<br />

Intents lassen sich dazu verwenden, zusätzliche<br />

Informationen zwischen Aktivitäten –<br />

und folglich auch zwischen Anwendungen –<br />

zu übermitteln. Dazu fügen Sie dem Intent<br />

weitere Eigenschaften hinzu, sogenannte Extras.<br />

Jedes Extra besteht aus einer Kombination<br />

aus einer Bezeichnung und einem Wert.<br />

Sie können bestimmte Extras unter der Ver-<br />

FebruAr 2012 AndroId-user.de

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!