Inizializza l'SDK client Oracle Android nell'applicazione

Ecco cosa devi sapere sull'inizializzazione dell'SDK Android nella tua app.

Inizializzare l'SDK client Oracle Android nella classe Application. Iniziare l'SDK descrive i diversi metodi che è possibile utilizzare per inizializzare l'SDK. Il file JavaDoc incluso nell'SDK descrive tutte le classi disponibili.

Se si sta eseguendo la connessione a un canale con autenticazione client disabilitata, passare false come secondo parametro alla funzione costruttore BotsConfiguration.BotsConfigurationBuilder().
import android.app.Application;
import oracle.cloud.bots.mobile.core.Bots;
import oracle.cloud.bots.mobile.core.BotsCallback;
import oracle.cloud.bots.mobile.core.BotsConfiguration;
import oracle.cloud.bots.mobile.core.BotsSDKException;

public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        try {
                BotsConfiguration botsConfiguration = new BotsConfiguration.BotsConfigurationBuilder(<SERVER_URI>, false, getApplicationContext()) // Configuration to initialize the SDK
                    .channelId(<CHANNEL_ID>)
                    .userId(<USER_ID>)
                    .build();

                Bots.init(this, botsConfiguration, new BotsCallback() {  // Initialize the SDK
                    @Override
                    public void onSuccess(Response paramResponse) {
                        // Handle init success
                    }
                    @Override
                    public void onFailure(Response paramResponse) {
                        // Handle init failure
                    }
                });
        } catch (BotsSDKException e) {
           // Handle Exceptions thrown by SDK
        }
    }
}

Se ci si connette a un canale con l'autenticazione client abilitata, è necessario apportare alcune modifiche minori: oltre a passare true come secondo parametro alla funzione costruttore BotsConfiguration.BotsConfigurationBuilder(), è anche necessario impostare la proprietà authTokenProvider con l'istanza di tipo AuthenticationTokenProvider che può essere utilizzata per generare e passare il token JWT.

La classe deve implementare l'interfaccia AuthenticationTokenProvider, che quindi sostituisce la funzione getAuthToken() per generare e restituire un token JWT. La funzione verrà utilizzata dal kit SDK per generare un nuovo token ogni volta che è necessario stabilire una nuova connessione e il token esistente è scaduto. Il codice sarà simile al seguente:
import android.app.Application;
import oracle.cloud.bots.mobile.core.AuthenticationTokenProvider;
import oracle.cloud.bots.mobile.core.Bots;
import oracle.cloud.bots.mobile.core.BotsCallback;
import oracle.cloud.bots.mobile.core.BotsConfiguration;
import oracle.cloud.bots.mobile.core.BotsSDKException;

public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        try {
                BotsConfiguration botsConfiguration = new BotsConfiguration.BotsConfigurationBuilder(<SERVER_URI>, true, getApplicationContext()) //  Configuration to initialize the SDK
                    .authTokenProvider(new AuthTokenProvider())
                    .build();

                Bots.init(this, botsConfiguration, new BotsCallback() {  // Initialize the SDK
                    @Override
                    public void onSuccess(Response paramResponse) {
                        // Handle init success
                    }
                    @Override
                    public void onFailure(Response paramResponse) {
                        // Handle init failure
                    }
                });
        } catch (BotsSDKException e) {
           // Handle Exceptions thrown by SDK
        }
    }

    private class AuthTokenProvider implements AuthenticationTokenProvider {
        @Override
        public String getAuthToken() {
            // Generate a new JWT Token and return
        }
    }
}
Visualizza l'interfaccia utente:
import oracle.cloud.bots.mobile.ui.ConversationActivity;
 
...
 
 
ConversationActivity.show(this);