---
sourceDocument: Xanadu API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowPushService 클래스 - Android

# NowPushService 클래스 - Android {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 08월 01일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 5분

NowPushService 클래스는 푸시 알림 서비스와의 상호 작용을 가능하게 하는 기능을 제공합니다.
{#NowPushServiceAndroidAPI__table_vx2_klw_5pb__entry__2}

| 이름 | 설명 |
|-|-|
| 구성 | 서비스와 연결할 서비스 구성입니다. 데이터 형식: [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/CtjnHOVAnnSYCtnSbLiy2g "NowServiceConfiguration 클래스를 사용하면 피처 서비스의 인스턴스 URL과 패키지 이름을 구성할 ServiceNow 수 있습니다.") |
[표 1. 속성]

{#NowPushServiceAndroidAPI__table_vx2_klw_5pb}

## NowPushService - handlePush(remoteMessage: RemoteMessage, successCallback: Consumer\<NowPushPayload\>, errorCallback: Consumer\<Throwable\>) {#ariaid-title2}

푸시 알림 요청을 처리합니다.
주:  
현재 유일하게 구현된 푸시 알림 유형은 `NowPushVirtualAgent`입니다. 다른 전달된 푸시 알림 유형은 [NotSupportedPushError](https://servicenow-prod.fluidtopics.net/TNXZZdzjbaT3USYrEz2zEw#NotSupportedPushErrorAndroidAPI "NotSupportedPushError 클래스의 함수는 NowPushSDK가 푸시 알림 요청을 처리할 수 없을 때 발생합니다. 이러한 유형의 오류가 발생하면 MobileSDK 프레임워크 외부에서 푸시 알림을 구문 분석하고 처리해야 합니다.") 객체를 반환합니다.
{#NPushServ-handlePush_S_O_O__table_aly_nvk_nrb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 원격 메시지 | [원격 메시지](https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/RemoteMessage) | `com.google.firebase.messaging.FirebaseMessagingService.onMessageReceived`에서 받은 알림입니다. 자세한 내용은 [Android 앱에서 메시지 받기를](https://firebase.google.com/docs/cloud-messaging/android/receive) 참조하세요. |
| 성공 콜백 | [소비자](https://developer.android.com/reference/kotlin/java/util/function/Consumer) \<[NowPushPayload](https://servicenow-prod.fluidtopics.net/p0qcw53bq5aoSOO9hE1LhQ#NowPushPayloadAndroidInterface "NowPushPayload 인터페이스는 NowSDK가 구현하는 푸시 알림 페이로드를 정의합니다.")\> | 처리 NowPushPayload 된 대상을 반환할 콜백입니다. |
| 오류 콜백 | [소비자](https://developer.android.com/reference/kotlin/java/util/function/Consumer) \<[Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/)\> | 발생한 오류를 반환할 콜백입니다. [NotSupportedPushError](https://servicenow-prod.fluidtopics.net/TNXZZdzjbaT3USYrEz2zEw#NotSupportedPushErrorAndroidAPI "NotSupportedPushError 클래스의 함수는 NowPushSDK가 푸시 알림 요청을 처리할 수 없을 때 발생합니다. 이러한 유형의 오류가 발생하면 MobileSDK 프레임워크 외부에서 푸시 알림을 구문 분석하고 처리해야 합니다.") 오류가 발생하면 모바일 SDK에서 알림 유형을 지원하지 않는 것이므로 모바일 SDK 프레임워크 외부에서 처리해야 합니다. |
[표 2. 매개변수]

{#NPushServ-handlePush_S_O_O__table_aly_nvk_nrb} {#NPushServ-handlePush_S_O_O__table_bly_nvk_nrb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 3. 반환]

{#NPushServ-handlePush_S_O_O__table_bly_nvk_nrb}  
이 예제에서는 onMessageReceived()를 재정의하고 `NowPushService`에 전달하는 RemoteMessage 방법을 보여줍니다. `NowPushService`가 알림 유형을 인식하면 요청을 처리하고 애플리케이션이 처리할 알림 개체를 반환합니다. 그렇지 않으면 [NotSupportedPushError](https://servicenow-prod.fluidtopics.net/TNXZZdzjbaT3USYrEz2zEw#NotSupportedPushErrorAndroidAPI "NotSupportedPushError 클래스의 함수는 NowPushSDK가 푸시 알림 요청을 처리할 수 없을 때 발생합니다. 이러한 유형의 오류가 발생하면 MobileSDK 프레임워크 외부에서 푸시 알림을 구문 분석하고 처리해야 합니다.")가 발생합니다.

    override fun onMessageReceived(remodeeMessage: RemoteMessage){
      pushService.handlePush(remoteMessage, { push ->
        when (push) {
          is NowPushVirtualAgent → handleVirtualAgentPush(push)
        }, { error ->
            Log.e(TAG, "Unknown push", error)
            handleAppPushNotification(remoteMessage)
        })
    }

## NowPushService - registerPushToken(pushToken: 문자열, pushApp: 문자열, successCallback: 실행 가능, errorCallback: 소비자\<Throwable\>) {#ariaid-title3}

현재 Android 장치 및 지정된 애플리케이션에 대한 푸시 알림을 식별하는 데 사용되는 인스턴스에 고유 Firebase 토큰을 ServiceNow 등록합니다.
인스턴스가 ServiceNow 애플리케이션 Android 에서 알림을 수신하기 위해 알림 장치를 생성하려면 이 토큰을 등록해야 합니다.
{#NPushServ-registerPushToken_S_S_O_O__table_zhp_ccl_nrb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 푸시토큰 | 문자열 | Firebase[com.google.firebase.messaging.FirebaseMessaging.getToken](https://firebase.google.com/docs/reference/js/v8/firebase.messaging.Messaging#gettoken) 또는 [com.google.firebase.messaging.FirebaseMessagingService.onNewToken](https://firebase.google.com/docs/cloud-messaging/android/client)에서 검색한 토큰입니다. |
| 푸시앱 | 문자열 | 연결된 ServiceNow 인스턴스의 푸시 애플리케이션 테이블에 지정된 푸시 애플리케이션의 이름입니다. |
| 성공 콜백 | [실행 가능](https://developer.android.com/reference/kotlin/java/lang/Runnable.html) | 토큰 등록에 성공하면 실행되는 콜백입니다. |
| 오류 콜백 | [소비자](https://developer.android.com/reference/kotlin/java/util/function/Consumer) \<[Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/)\> | 토큰 등록이 실패할 때 실행되는 콜백입니다. |
[표 4. 매개변수]

{#NPushServ-registerPushToken_S_S_O_O__table_zhp_ccl_nrb} {#NPushServ-registerPushToken_S_S_O_O__table_a3p_ccl_nrb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 5. 반환]

{#NPushServ-registerPushToken_S_S_O_O__table_a3p_ccl_nrb}  
이 예제에서는 현재 Android 디바이스 및 애플리케이션 "PushAppName"에 대한 푸시 토큰을 등록합니다.

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

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

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

## NowPushService - unregisterPushToken(pushToken: 문자열, pushApp: 문자열, successCallback: 실행 가능, errorCallback: 소비자\<Throwable\>) {#ariaid-title4}

연결된 ServiceNow 인스턴스와 함께 지정된 Firebase 푸시 토큰의 등록을 취소합니다.
{#NPushServ-unregPushToken_S_S_O_O__table_ywx_bgl_nrb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 푸시토큰 | 문자열 | Firebase 등록을 취소할 토큰입니다. [com.google.firebase.messaging.FirebaseMessaging.getToken](https://firebase.google.com/docs/reference/js/v8/firebase.messaging.Messaging#gettoken) 또는 [com.google.firebase.messaging.FirebaseMessagingService.onNewToken](https://firebase.google.com/docs/cloud-messaging/android/client)에 의해 검색됩니다. |
| 푸시앱 | 문자열 | 등록 취소할 토큰과 연결된 푸시 애플리케이션의 이름입니다. 이 정보는 연결된 ServiceNow 인스턴스의 푸시 애플리케이션 테이블에 저장됩니다. |
| 성공 콜백 | [실행 가능](https://developer.android.com/reference/kotlin/java/lang/Runnable.html) | 토큰 등록 취소에 성공하면 실행되는 콜백입니다. |
| erro rCallback | [소비자](https://developer.android.com/reference/kotlin/java/util/function/Consumer) \<[Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/)\> | 토큰 등록 취소가 실패할 때 실행되는 콜백입니다. |
[표 6. 매개변수]

{#NPushServ-unregPushToken_S_S_O_O__table_ywx_bgl_nrb} {#NPushServ-unregPushToken_S_S_O_O__table_zwx_bgl_nrb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 7. 반환]

{#NPushServ-unregPushToken_S_S_O_O__table_zwx_bgl_nrb}  
이 코드 예제에서는 사용자가 애플리케이션에서 로그아웃하는 경우와 같이 푸시 토큰을 등록 취소하는 방법을 보여 줍니다.

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


