---
title: Before you begin
description: Details the prerequisites for the DaVinci Android tutorial, covering compatibility with PingOne, DaVinci, and Android versions, as well as the necessary server-side configuration.
component: orchsdks
page_id: orchsdks:davinci:try-it-out/android/00_before-you-begin
canonical_url: https://developer.pingidentity.com/orchsdks/davinci/try-it-out/android/00_before-you-begin.html
revdate: Fri, 17 Oct 2025 14:50:55 +0100
keywords: ["DaVinci", "Android", "Prerequisites", "Compatibility", "Server Configuration", "Tutorial"]
section_ids:
  compatibility: Compatibility
  prerequisites: Prerequisites
  server_configuration: Server configuration
---

# Before you begin

[icon: circle-check, set=far]PingOne [icon: android, set=fab]Android

* **Prepare**

* [Download](01_downloading-forgerocksdk.html)

* [Configure](02_configuring-sample-for-davinci.html)

* [Run](03_running-sample-pingone.html)

To successfully complete this tutorial refer to the prerequisites in this section.

The tutorial also requires a configured PingOne instance.

## Compatibility

* PingOne

  * Your PingOne instance must have DaVinci enabled.

- DaVinci flows

  Ensure your flows only use supported connectors, capabilities and fields for user interactions:

* HTTP Connector

  * **Custom HTML** capability

    > **Collapse: View supported fields**
    >
    > * [HTTP Connector field and collector support](#http-connector-fields-android-compatibility)
    >
    > * [HTTP Connector SK-Component support](#http-connector-sk-components-android-compatibility)
    >
    > **HTTP Connector field and collector support**
    >
    > | Field (`Collector`)                       | Description                                                                        | DaVinci module |          |            |
    > | ----------------------------------------- | ---------------------------------------------------------------------------------- | -------------- | -------- | ---------- |
    > |                                           |                                                                                    | Android        | iOS      | JavaScript |
    > | Text field(`TextCollector`)               | Collects a single text string.                                                     | ✅`1.0.0`       | ✅`1.0.0` | ✅`1.0.0`   |
    > | Password field(`PasswordCollector`)       | Collects a single text string that cannot be read from the screen.                 | ✅`1.0.0`       | ✅`1.0.0` | ✅`1.0.0`   |
    > | Submit Button(`SubmitCollector`)          | Sends the collected data to PingOne to continue the DaVinci flow.                  | ✅`1.0.0`       | ✅`1.0.0` | ✅`1.0.0`   |
    > | Flow Button(`FlowCollector`)              | Triggers an alternative flow without sending the data collected so far to PingOne. | ✅`1.0.0`       | ✅`1.0.0` | ✅`1.0.0`   |
    > | Label(`LabelCollector`)                   | Display a read-only text label.                                                    | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Radio / Dropdown(`SingleSelectCollector`) | Collects a single value from a choice of multiple options.                         | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    >
    > **HTTP Connector SK-Component support**
    >
    > | SK-Component (`Collector`) | Description                                                                                                               | DaVinci module |          |            |
    > | -------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -------------- | -------- | ---------- |
    > |                            |                                                                                                                           | Android        | iOS      | JavaScript |
    > | skIDP(`IdpCollector`)      | Presents a button to allow users to authenticate using an external identity provider, such as Apple, Facebook, or Google. | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | skrisk(`ProtectCollector`) | Instructs the client to gather behavioral data and return it to PingOne so that it can perform risk evaluations.          | ✅`1.3.0`       | ✅`1.3.0` | ✅`1.3.0`   |

    > **Collapse: View unsupported features**
    >
    > Verify that your flow does not depend on any *unsupported* elements:
    >
    > * SKPolling components
    >
    >   The **[SKPolling](https://docs.pingidentity.com/davinci/flows/davinci_sk_components.html#skpolling)** component cannot be processed by the DaVinci Client and should not be included in flows.
    >
    >   Features such as Magic Link authentication require the **SKPolling** component and therefore cannot be used with the DaVinci Client.
    >
    > * Images
    >
    >   Images included in the flow cannot be passed to the SDK.

  For example, the [PingOne sign-on with sessions DaVinci flow](https://support.pingidentity.com/s/marketplace-integration/a7iDo00000110R2IAI/pingone-sign-on-with-sessions).

* PingOne Form Connector

  * **Show Form** capability

    > **Collapse: View supported fields**
    >
    > * [Custom Fields support](#form-connector-fields-android-compatibility)
    >
    > * [Toolbox support](#form-connector-toolbox-android-compatibility)
    >
    > **Custom Fields support**
    >
    > | Field (`Collector`)                        | Description                                                                                                     | DaVinci module |          |            |
    > | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | -------------- | -------- | ---------- |
    > |                                            |                                                                                                                 | Android        | iOS      | JavaScript |
    > | Text Input(`TextCollector`)                | Collects a single text string.                                                                                  | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Password(`PasswordCollector`)              | Collects a single text string that cannot be read from the screen.                                              | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Dropdown(`SingleSelectCollector`)          | Collects a value from a dropdown containing one or more text strings.                                           | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Combobox(`MultiSelectCollector`)           | Collects a value from a dropdown containing one or more text strings, the user can enter their own text string. | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Radio Button List(`SingleSelectCollector`) | Collects a value from one or radio buttons.                                                                     | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Checkbox List(`MultiSelectCollector`)      | Collects the value of one or more checkboxes.                                                                   | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Phone Number Input(`PhoneNumberCollector`) | Collects a phone number, including the country code.                                                            | ✅`1.2.0`       | ✅`1.2.0` | ✅`1.2.0`   |
    >
    > **Toolbox support**
    >
    > | Field (`Collector`)                                                    | Description                                                                                                                                                             | DaVinci module |          |            |
    > | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------- | ---------- |
    > |                                                                        |                                                                                                                                                                         | Android        | iOS      | JavaScript |
    > | Flow Button(`FlowCollector`)                                           | Presents a customized button.                                                                                                                                           | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Flow Link(`FlowCollector`)                                             | Presents a customized link.                                                                                                                                             | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Translatable Rich Text(`TextCollector`)                                | Presents rich text that you can translate into multiple languages.                                                                                                      | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | Social Login(`IdpCollector`)                                           | Presents a button to allow users to authenticate using an external identity provider, such as Apple, Facebook, or Google.                                               | ✅`1.1.0`       | ✅`1.1.0` | ✅`1.1.0`   |
    > | MFA Device Selection - Authentication(`DeviceAuthenticationCollector`) | Presents a list of methods for performing multi-factor authentication (MFA).&#xA;&#xA;DaVinci client currently only supports the Email, SMS, and Voice MFA types.       | ✅`1.2.0`       | ✅`1.2.0` | ✅`1.2.0`   |
    > | MFA Device Selection - Registration(`DeviceRegistrationCollector`)     | Presents a list of methods you can register for multi-factor authentication (MFA).&#xA;&#xA;DaVinci client currently only supports the Email, SMS, and Voice MFA types. | ✅`1.2.0`       | ✅`1.2.0` | ✅`1.2.0`   |

* PingOne Protect Connector

  * **Create Risk Evaluation** capability

    | Android  | iOS      | JavaScript |
    | -------- | -------- | ---------- |
    | ✅`1.3.0` | ✅`1.3.0` | ✅`1.3.0`   |

- Android

  This sample requires at least Android API 23 (Android 6.0)

- Java

  This sample requires at least Java 8 (v1.8).

## Prerequisites

* Android Studio

  Download and install [Android Studio](https://developer.android.com/studio), which is available for many popular operating systems.

* An Android emulator or physical device

  To try the quick start application as you develop it, you need an Android device. To add a virtual, emulated Android device to Android Studio, refer to [Create and manage virtual devices](https://developer.android.com/studio/run/managing-avds), on the **Android Developers** website.

## Server configuration

You must configure your PingOne instance for use with the DaVinci module.

Ask your PingOne administrator to complete the following tasks:

* Configure a DaVinci flow

* Create a DaVinci application

* Configure PingOne for DaVinci flow invocation

To learn how to complete these steps, refer to [Launching a flow with a Ping SDK](https://docs.pingidentity.com/davinci/integrating_flows_into_applications/davinci_sdk_launching_a_flow_with_the_sdk.html) in the *PingOne DaVinci documentation*.
