Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Erstellen einer "Hello World"-Anwendung für Android

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Einbetten der Service SDK-Frameworks in Ihr Android-Projekt
  • Verknüpfen einiger Grundfunktionen des Service-SDK mit Ihrem Android-Projekt
  • Beschreiben, wo mehr Service SDK-Ressourcen zu finden sind

Erste Schritte mit Android

In dieser Einheit zeigen wir Ihnen, wie schnell Sie Service Cloud-Funktionen mit Ihrer bestehenden Android-Anwendung verbinden können. Mit dem Android Service-SDK ist dies ein bisschen anders als mit dem iOS Service-SDK. Das liegt daran, dass wir bei der Entwicklung jedes SDKs darauf geachtet haben, die standardmäßigen Designmuster für die jeweilige Plattform einzuhalten.

Hinweis

Hinweis

Bei dieser Einheit gehen wir davon aus, dass Sie mit der Android-Entwicklung vertraut sind. Es wird nicht erläutert, wie Sie Java-Code schreiben oder die Android Studio-IDE einsetzen. Wenn Sie mit diesen Dingen nicht vertraut sind, können Sie die Einheit trotzdem überfliegen, um ein Gefühl dafür zu bekommen, was es bedeutet, dieses SDK zu verwenden.

Erstellen eines einfachen Projekts in Android Studio

Wir erstellen nun ein Telefonprojekt mit Android Studio. Achten Sie darauf, eine SDK-Minimalversion von API 21 oder höher anzugeben.

Einrichten von Android Studio

Außerdem erstellen wir ein Basic Activity-Projekt, um ohne weiteren Aufwand eine nicht verankerte Aktionsschaltfläche zu erhalten.

Basic Activity-Projekt

Jetzt kann es losgehen. Um das SDK in unser Projekt einzubinden, müssen wir die Repositories im Skript "build.gradle" aktualisieren:

allprojects {
  repositories {
    google()
    jcenter()
    maven {
      url 'https://s3.amazonaws.com/salesforcesos.com/android/maven/release'
    }
    maven {
      url 'http://tokbox.bintray.com/maven/'
    }
  }
}

Und die Abhängigkeiten im Skript "build.gradle" der Anwendung aktualisieren:

dependencies {
  compile 'com.salesforce.service:servicesdk:+'
}
Hinweis

Hinweis

Es ist am besten, die Kompilierung unter Angabe einer bestimmten SDK-Version durchzuführen. Ersetzen Sie das "+" mit der Version, die Sie verwenden möchten. Lesen Sie in der Installationsanleitung die Informationen über Versionsangaben nach (siehe "Ressourcen").

Bevor wir codieren, ändern wir die nicht verankerte Aktionsschaltfläche von einem E-Mail-Symbol (ic_dialog_email) in ein Hilfesymbol (ic_menu_help). Diese Änderung nehmen Sie in "activity_main.xml" vor:

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_menu_help"/>

Bis hierhin sieht alles gut aus. Fügen wir nun etwas Code zu diesem Projekt hinzu, damit es etwas Interessantes tut…

Jetzt codieren wir…nach Android-Art

Auch bei dieser Einheit werden wir uns in die Knowledge-Funktion einklinken, Sie können jedoch jede der anderen Funktionen ausprobieren, wenn Sie möchten.

Zuerst definieren wir einige Variablen in unserer Activity-Hauptklasse.

// You should normally maintain a reference to these instances
// within the Application lifecycle (rather than Activity lifecycle)...
// They are placed here just for this example...
KnowledgeUI mKnowledgeUI = null;
KnowledgeUIClient mKnowledgeUIClient = null;
// Specify the community url, category group, and root category
public static final String communityUrl = "https://your-community-url";
public static final String categoryGroup = "your-category-group";
public static final String rootCategory = "your-root-category";

Achten Sie wie in der iOS-Einheit darauf, die Platzhalterwerte durch echte Werte für Ihre Community, Datenkategoriegruppe und Stammdatenkategorie zu ersetzen. Detaillierte Anleitungen dazu finden Sie unter "Cloud-Setup für Knowledge" (Abschnitt "Ressourcen").

Nun erstellen wir eine Initialisierungsmethode und eine Startmethode für Knowledge.

// Call this method at init time...
private void initKnowledge() {
    if (mKnowledgeUI == null) {
        // Create a core configuration instance
        KnowledgeConfiguration coreConfiguration =
            KnowledgeConfiguration.create(communityUrl);
        // Create a UI configuration instance from core instance
        KnowledgeUIConfiguration uiConfiguration =
            KnowledgeUIConfiguration.create(coreConfiguration, categoryGroup, rootCategory);
        // Create a UI instance
        mKnowledgeUI = KnowledgeUI.configure(uiConfiguration);
    }
}
// Call this method when you want to show the Knowledge UI
private void startKnowledge() {
    if (mKnowledgeUIClient == null) {
        // Create a client asynchronously
        mKnowledgeUI.createClient(MainActivity.this)
            .onResult(new Async.ResultHandler<KnowledgeUIClient>() {
            @Override public void handleResult (Async<?> operation,
                KnowledgeUIClient uiClient) {
                // Store reference to the Knowledge UI client
                mKnowledgeUIClient = uiClient;
                // Handle the close action
                uiClient.addOnCloseListener(new KnowledgeUIClient.OnCloseListener() {
                    @Override public void onClose () {
                        // Clear reference to the Knowledge UI client
                        mKnowledgeUIClient = null;
                    }
                });
                // Launch the UI
                uiClient.launchHome(MainActivity.this);
            }
        });
    }
}

Die initKnowledge-Methode verwendet Konfigurationsinformationen zum Erstellen eines KnowledgeUI-Objekts. Die startKnowledge-Methode erstellt einen KnowledgeUIClient aus dem KnowledgeUI-Objekt und startet die Oberfläche mit der SDK-Methode launchHome.

Wir können die initKnowledge-Methode mit der onCreate-Methode und die startKnowledge-Methode mit dem Zeitpunkt verknüpfen, zu dem der Benutzer auf die nicht verankerte Aktionsschaltfläche tippt. Das sieht dann beispielsweise so aus:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    initKnowledge();
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startKnowledge();
        }
    });
}

Und das war's. Starten Sie die Anwendung im Emulator, tippen Sie auf die nicht verankerte Aktionsschaltfläche und sehen Sie zu, wie Knowledge angezeigt wird.

Knowledge in Android

Wie bei iOS ist dies nur der Anfang. Sie können Heldenfotos hinzufügen und die Farben an Ihr Branding anpassen. Sie können ein ganzes Support-Startseitenerlebnis erstellen, das Knowledge, die Kundenvorgangsverwaltung und Chat umfasst. Und, falls Sie dies bevorzugen, können Sie eine eigene Benutzeroberfläche erstellen und unsere einfache API nutzen.

Was kommt jetzt?

Sehen Sie sich im Abschnitt "Ressourcen" die Links zu nützlicher Dokumentation an, um Ihre für Services aktivierten Anwendungen auf die nächste Entwicklungsstufe zu bringen. Sie können mit dem "Entwicklerhandbuch zum integrierten Service-SDK für Android" beginnen. Dieses Handbuch enthält weitere Anleitungen und Beispiele sowie Informationen zu unzähligen weiteren Themen. Sie finden hier alles, was Sie brauchen, um die wichtigsten Supportfunktionen einzubinden: Knowledge, Kundenvorgangsverwaltung und Chat. Sie können auch die Referenzdokumentation für Android zurate ziehen, falls Sie weitere Einzelheiten über die API wissen möchten.

Damit sind wir auch schon am Ende unserer Einführung in das integriertes Service-SDK für mobile Anwendungen. Sie kennen jetzt den Nutzen dieses Toolkits und haben eine Vorstellung davon, wie man es verwendet. Tonnenweise Funktionen ohne viel Programmieraufwand. Jetzt sind Sie dran. Sehen wir uns an, was Sie mit dem SDK alles anstellen können!