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

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowSDK - Android

# NowSDK - Android {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

The NowSDK class is a singleton that provides the public API for the
NowSDK. This class is the gateway to all Android SDK feature
services.

Before initializing a feature service, you must initialize the SDK itself by calling [NowSDK.configure()](https://servicenow-prod.fluidtopics.net/oSGCkex~akn~~d1lxwySig#NowSDK-configure_O_O "Configures the NowSDK for use."). For additional
information on getting started with the Android NowSDK, refer to the ServiceNow Mobile SDK Developers Guide - Android.

## NowSDK - configure(application: Application, configuration: NowSDKConfiguration) {#ariaid-title2}

Configures the NowSDK for use.
You must call this function before attempting to use any of the feature services provided
by the SDK.
{#NowSDK-configure_O_O__table_cyv_kpc_npb__entry__3}

| Name | Type | Description |
|-|-|-|
| application | [Application](https://developer.android.com/reference/kotlin/android/app/Application.html) | Reference to the hosting application object. |
| configuration | NowServiceConfiguration | Object containing the information necessary to initialize the NowSDK. |
[Table 1. Parameters]

{#NowSDK-configure_O_O__table_cyv_kpc_npb} {#NowSDK-configure_O_O__table_dyv_kpc_npb__entry__2}

| Type | Description |
|-|-|
| None | NowSDKError is thrown if the provided configuration is invalid. |
[Table 2. Returns]

{#NowSDK-configure_O_O__table_dyv_kpc_npb}  
The following code example shows how to call this function.

    class SampleApplication : Application(), NowSDKAuthorizationProviding, DevicePermissionDelegate {

        private val nowSdkSettings = NowSDKSettings(
            instanceBaseURL = "https://instance-name.service-now.com",
            clientId = "client_id",
            user = "user"
        )

        private val coroutineScope = CoroutineScope(Dispatchers.IO)

        private val nowSDKConfiguration = NowSDKConfiguration(this, this, NowLogLevel.Debug)
        override fun onCreate() {
            super.onCreate()

            NowSDK.configure(this, nowSDKConfiguration)
        }


        override fun requestAuthorization(
            instanceURL: URL,
            callback: Consumer<List<AuthorizationToken>?>
        ) {
            coroutineScope.launch {
                when {
                    nowSdkSettings.user.isNullOrBlank().not() -> authorizeWithJWT(
                        callback = callback,
                        user = nowSdkSettings.user,
                        clientId = nowSdkSettings.clientId
                    )

                    else -> authorizeWithGuest(callback = callback)
                }
            }
        }

        override fun canRequestPermission(permission: DevicePermission): Boolean {
            return true
        }
    }

## NowSDK - logout() {#ariaid-title3}

Clears all user sessions persisted in memory.
{#NowSDK-logout__table_cyv_kpc_npb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 3. Parameters]

{#NowSDK-logout__table_cyv_kpc_npb} {#NowSDK-logout__table_dyv_kpc_npb__entry__2}

| Type | Description |
|-|-|
| None |   |
[Table 4. Returns]

{#NowSDK-logout__table_dyv_kpc_npb}  
The following code example shows how to call this function.

    class SampleApplication : Application() {

        private val nowSDKConfiguration = NowSDKConfiguration(authorizationProvider, permissionDelegate, NowLogLevel.Debug)

        override fun onCreate() {
            super.onCreate()
            NowSDK.configure(this, nowSDKConfiguration)
        }

        fun logout() {
            // Clear all user session when an application resets the user session
            NowSDK.logout()
        }
    }


