---
sourceDocument: Xanadu-API-Referenz
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu-API-Referenz

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Push-Benachrichtigungen in Ihrer Anwendung Android einrichten

# Push-Benachrichtigungen in Ihrer Anwendung Android einrichten {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 Minuten Lesedauer

Zusätzlich zu den Aufgaben, die Sie in der Instanz ServiceNow® ausführen müssen, um eine Push-Benachrichtigung zu konfigurieren, müssen Sie auch spezifischen Code in Ihre Anwendung Android einfügen.

## Erstellen Sie den NowSDK NowPushService {#mobsdk-and-setup-push-app__section_hyb_zxp_prb}

Als erstes muss in Ihrer Anwendung das NowSDK NowPushServiceabgerufen werden. Fügen Sie Code, der dem folgenden Codeausschnitt ähnelt, früh in Ihrem Hauptcodetext hinzu.

    /**
     * Helper class used to handle different Now service instances.
     */
    @Singleton
    class SdkManager @Inject constructor() {

        private var nowPushService: NowPushService? = null

        /**
         * Create the NowPushService once in the lifetime of the application inside the Application
         * class or another manager class that will be injected into other classes via dagger/hilt.
         * NowPushService should be created after initializing the NowSDK
         */
        suspend fun getNowPushService(): NowPushService? {
            if (nowPushService != null) return nowPushService

            return NowPushSDK.makePushService(URL("https://instance-name.service-now.com")).getOrThrow()
                .also { this.nowPushService = it }
        }
    }

Weitere Informationen zur Methode NowPushSDK.machenPushService() finden Sie unter [NowPushSDK -- makePushService(instanceURL: URL)](https://servicenow-prod.fluidtopics.net/NZredFPAAt0ov~pE1v8_ZQ#NPushSDK-makePushService_S_O_O "Erstellt einen NowPush-Service.").

## Registrieren Sie das Push-Token {#mobsdk-and-setup-push-app__section_kyr_4cq_prb}

Google Firebase stellt ein eindeutiges Push-Token bereit, das das Gerät und die Anwendung identifiziert, die Push-Benachrichtigungen erhalten sollen. Damit eine Anwendung eine Push-Benachrichtigung erhält, müssen Sie dieses Token bei NowPushService registrieren. Fügen Sie eine Funktion ähnlich dem folgenden Codefragment in Ihrer Anwendung Android hinzu. Stellen Sie sicher, dass Sie PushAppName in den Namen Ihrer Anwendung Android ändern. Diese Anwendung muss bei Ihrer Instanz ServiceNow® registriert sein.

    FirebaseMessaging.getInstance().token.addOnCompleteListener {task ->
      val token = task.result

      if (!task.isSuccessfull || token == null) {
        throw Exception("Unable to fetch token"))
      }

      pushService.registerPushToken(token, "PushAppName", {
          Log.v(TAF, "Successfully registered push token")
      }, { e ->
          Log.e(TAG, "Error registrating push", e)
      })
    }

Weitere Informationen zur Methode registrierenPushToken() finden Sie unter [NowPushService -- registrierenPushToken(pushToken: Zeichenfolge, pushApp: Zeichenfolge, erfolgreichCallback: Ausführbar, errorCallback: Verbraucher\<Throwable\> )](https://servicenow-prod.fluidtopics.net/C27fDovA8FippD_E4FhWHA#NPushServ-registerPushToken_S_S_O_O "Registriert ein eindeutiges Firebase -Token bei der ServiceNow -Instanz, das zur Identifizierung der Push-Benachrichtigungen für das aktuelle Android -Gerät und die angegebene Anwendung verwendet wird.").

## Heben Sie die Registrierung des Push-Tokens auf

Sie müssen die Registrierung des Push-Tokens aufheben, wenn der Benutzer Ihre Anwendung beendet, z. B. wenn er sich abmeldet. Verwenden Sie Code ähnlich dem folgenden Codeausschnitt, um die Registrierung des Push-Tokens aufzuheben. Stellen Sie sicher, dass Sie PushAppName in den Namen Ihrer Anwendung Android ändern.

    pushService.unregisterPushToken(token, "PushAppName", {
          Log.v(TAG, "Successfully unregistered push token")
    }, { e ->
          Log.e(TAG, "Error unregistering push", e)
    })

Weitere Informationen zur Methode unregisterPushToken() finden Sie unter [NowPushService -- unregisterPushToken(pushToken: Zeichenfolge, pushApp: Zeichenfolge, erfolgreichCallback: Ausführbar, errorCallback: Verbraucher\<Throwable\> )](https://servicenow-prod.fluidtopics.net/C27fDovA8FippD_E4FhWHA#NPushServ-unregPushToken_S_S_O_O "Hebt die Registrierung des angegebenen Firebase -Push-Tokens bei der zugehörigen ServiceNow -Instanz auf.").

## Implementieren Sie den FirebaseMessagingService

Sie müssen `FirebaseMessagingService` in Ihrer Anwendung implementieren. Befolgen Sie zum Einrichten und Implementieren dieses Service die Anweisungen in der [Android Firebase-Dokumentation](https://firebase.google.com/docs/cloud-messaging/android/receive).

Überschreiben Sie nach dem Setup die Methode onMessageReceived(), und übergeben Sie RemoteMessage an `NowPushService`. Wenn `NowPushService` die Benachrichtigung erkennt, verarbeitet sie sie und gibt das Benachrichtigungsobjekt zurück, das die Anwendung verarbeiten soll. Derzeit ist `NowPushVirtualAgent`die einzige implementierte Benachrichtigung. Eine unbekannte Benachrichtigung gibt ein `NotSupportedPushError-` Objekt zurück.

    //Custom coroutineScope created in the Firebase service class
    private val serviceCoroutineScope = CoroutineScope(Dispatchers.IO)

    override fun onMessageReceived(remoteMessage: RemoteMessage) {
      serviceCoroutineScope.launch {
        val result = handleNowPush(remoteMessage)

        if (result.isSuccess) {
          when (val push = result.getOrNull()) {
            is NowPushVirtualAgent -> handleVirtualAgentPush(push)
          }
        } else {
          // Not a NowPush. Handle host app push notification message here
        }
      }
    }

    private suspend fun handleNowPush(remoteMessage: RemoteMessage): Result<NowPushPayload> {
      val nowPushService = sdkManager.getNowPushService()

      return suspendCoroutine { cont ->
        nowPushService?.handlePush(remoteMessage,
          { cont.resume(Result.success(it)) }, { cont.resumeWithException(it) })
      }
    }

Weitere Informationen zur Methode handlePush() finden Sie unter [NowPushService -- handlePush(remoteMessage: RemoteMessage, erfolgreichCallback: Verbraucher\<NowPushPayload\> , FehlerRückruf: Verbraucher\<Throwable\> )](https://servicenow-prod.fluidtopics.net/C27fDovA8FippD_E4FhWHA#NPushServ-handlePush_S_O_O "Verarbeitet eine Push-Benachrichtigungsanforderung.").

Außerdem müssen Sie onNewToken(token: String)überschreiben. Achten Sie darauf, das Token an pushService.registerPushToken()zu übergeben, ähnlich wie im Abschnitt „Push-Token registrieren" beschrieben.

