Was sind Intents und wofür sind diese gut?

  • Eines der coolsten Dinge in Android sind Intents.
    Am häufigsten werden Intents dazu benutzt um Anwendungen zu starten oder Aktivitäten wie das Öffnen des eMail-Programms, oder der Kontaktliste zu starten.


    Ein Intent beschreibt was eine Applikation tun möchte, wobei ein Intent aus einer Action und den Daten, mit denen diese Action ausgeführt werden soll, besteht.
    Z.B. ruft man eine Webseite über einen Intent auf, indem man ihr die Action "View" zuweist und ihr zusätzlich die Url der aufzurufenden Seite übergibt.


    Intents können z.B. auch gut dazu benutzt werden um einen Barcode zu scannen und den gescannten code an die activity zurückzugeben. Oder man schießt mit der Kamera ein Bild und verschickt dieses per eMail.


    Hier noch ein paar Beispiele, was Sie mit "android.intent.action.VIEW" und "startActivity ()" tun können.


    Einen Barcode scannen und den code zurückgeben

    Java
    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    startActivityForResult(intent, 0);



    Java
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (resultCode == Activity.RESULT_OK && requestCode == 0) {
        Bundle extras = data.getExtras();
        String result = extras.getString("SCAN_RESULT");
        Toast toast = Toast.makeText(this, result, Toast.LENGTH_SHORT);
        toast.show();
      }
    }




    Ein Foto schießen

    Java
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    startActivityForResult(intent, 0);



    Java
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (resultCode == Activity.RESULT_OK && requestCode == 0) {
        String result = data.toURI();
        Toast toast = Toast.makeText(this, result, Toast.LENGTH_SHORT);
        toast.show();
      }
    }
  • Vielleicht eine blöde Frage, aber wie findet man raus wie die gewünschte Aktion heisst, also was in der Klammer stehen muss?


    z.B.: ("com.google.zxing.client.android.SCAN") oder ("android.media.action.IMAGE_CAPTURE")


    Gibt's da irgendwo eine Liste, oder probiert man einfach mit der autocomplete Funktion herum?


    z.B. Wie würde ein Intent aussehen, der bloss eine neue Screen öffnet, um ein Ergebnis per ListView anzuzeigen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!