---
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


---

# NowSDKConfiguration class - Android

# NowSDKConfiguration class - Android {#ariaid-title1}

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

The NowSDKConfiguration class contains configuration information
needed to initialize the NowSDK.
{#NowSDKConfigurationAndroidAPI__table_vx2_klw_5pb__entry__3}

| Name | Type | Description |
|-|-|-|
| authorizationProvider | NowSDKAuthorizationProviding | Delegate object that is responsible for providing authorization tokens to the NowSDK upon request. |
| logLevel | NowLogLevel | Level of log messages for the associated logger to store. Valid values (case-sensitive): * Debug * Error * Fatal * Info * None {#NowSDKConfigurationAndroidAPI__ul_l2s_cts_4qb} |
| permissionDelegate | DevicePermissionDelegate | Delegate object called by the NowSDK to request permission from the host application to show system dialog for requesting the indicated device permission. For example: override fun canRequestPermission(permission: DevicePermission): Boolean = when (permission) { DevicePermission.Camera -> true DevicePermission.Microphone -> false } } |
[Table 1. Properties]

{#NowSDKConfigurationAndroidAPI__table_vx2_klw_5pb}

## NowSDKConfiguration - NowSDKConfiguration(authorizationProvider:
NowSDKAuthorizationProviding, permissionDelegate: DevicePermissionDelegate, logLevel:
NowLogLevel) {#ariaid-title2}

Creates a new NowSDKConfiguration object.
{#NSDKConA-NowSDKConfig_O_O_S__table_rmy_jvq_5pb__entry__3}

| Name | Type | Description |
|-|-|-|
| authorizationProvider | NowSDKAuthorizationProviding | Delegate object that is responsible for providing authorization tokens to the NowSDK upon request. |
| permissionDelegate | DevicePermissionDelegate | Delegate object called by the NowSDK to request permission from the host application to show system dialog for requesting the indicated device permission. For example: override fun canRequestPermission(permission: DevicePermission): Boolean = when (permission) { DevicePermission.Camera -> true DevicePermission.Microphone -> false } } |
| logLevel | NowLogLevel | Level of log messages for the associated logger to store. Valid values (case-sensitive): * Debug * Error * Fatal * Info * None {#NSDKConA-NowSDKConfig_O_O_S__ul_l2s_cts_4qb} |
[Table 2. Parameters]

{#NSDKConA-NowSDKConfig_O_O_S__table_rmy_jvq_5pb} {#NSDKConA-NowSDKConfig_O_O_S__table_hgk_bnp_wpb__entry__2}

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

{#NSDKConA-NowSDKConfig_O_O_S__table_hgk_bnp_wpb}  
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
        }
    }


