Configurare il kit SDK Oracle Mobile Hub con l'applicazione Mobile in uso

Prima di scrivere un codice, è necessario configurare il kit SDK Oracle Mobile Hub con l'applicazione Mobile.

Aggiungere l'SDK

In un'installazione di base delle applicazioni, senza le funzioni intermedie, il kit SDK per client Android verrà aggiunto a un'applicazione.

  1. Decomprimere il file zip SDK del client Android.

  2. Copiare i file JAR SDK nella cartella libs del progetto dell'applicazione. Se questa cartella non esiste, crearla allo stesso livello della gerarchia delle cartelle src e build.

  3. In Android Studio, selezionare File, Nuovo, quindi Nuovo modulo per avviare la procedura guidata per importare IDMMobileSDK.jar nel progetto.

  4. Fare clic su Importa package.JAR/.AAR e seguire la procedura guidata per importare il file IDMMobileSDK.jar nel progetto.
  5. Nella struttura di origine dell'applicazione creare una cartella denominata assets (nello stesso livello delle cartelle java e res).

  6. Nel bundle SDK individuare il file oracle_mobile_cloud_config.xml e copiarlo nella cartella assets.

  7. Nel file build.gradle dell'applicazione assicurarsi che le dipendenze riportate di seguito siano comprese tra quelle registrate In modo che le librerie SDK siano disponibili per l'applicazione.

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.squareup.okhttp3:okhttp:3.9.0'
        compile 'org.slf4j:slf4j-jdk14:1.7.13'
        //to enable the app to receive notifications, include the following:
        compile 'com.google.firebase:firebase-messaging:11.0.2'
    		compile 'com.facebook.android:facebook-android-sdk:4.25.+'
    }
  8. Se l'applicazione è stata progettata per ricevere notifiche come parte delle campagne analitiche, aggiungere la seguente riga nella parte inferiore di build.gradle.

    apply plugin: 'com.google.gms.google-services'
  9. Aprire assets/oracle_mobile_cloud_config.xml e compilare i dettagli dell'ambiente per il backend mobile che verrà utilizzato dall'applicazione.

Configura proprietà SDK

Per usare il kit SDK client in un'applicazione Android, è necessario aggiungere un file di configurazione oracle_mobile_cloud_config.xml all'applicazione e compilarlo con i dettagli dell'ambiente per il proprio backend in Oracle Mobile Hub. A loro volta, le classi SDK utilizzano queste informazioni per creare intestazioni HTTP per le chiamate REST effettuate a Oracle Mobile Hub.

Il file di configurazione viene inserito nel package del bundle principale dell'applicazione nella cartella assets allo stesso livello delle cartelle java e res. Ad esempio, nell'applicazione GettingStarted di esempio si trova in /GettingStarted/src/main/assets.

Il file è costituito essenzialmente dalle parti riportate di seguito.

  • L'elemento mobileBackend e il relativo contenuto.

    Includere questa parte se si utilizza un backend con l'applicazione. Le classi SDK utilizzano i dettagli dell'ambiente e di autenticazione specificati per accedere al backend e creare le intestazioni HTTP per le chiamate REST effettuate alle API.

  • Elementi che si applicano all'intera configurazione, ad esempio logLevel e oAuthTokenEndpoint. Questi elementi in genere, ma non devono, vengono visualizzati nella parte superiore del file.

L'esempio di codice seguente mostra la struttura di un file oracle_mobile_cloud_config.xml.

<config>

  <!--This value is required if you are using OAuth to authenticate against the mobile backend-->
  <oAuthTokenEndPoint>YOUR_OAUTH_TOKEN_END_POINT<oAuthTokenEndPoint>
  <!--Set to true if you want to get logging information-->
  <enableLogger>true</enableLogger>
  <logLevel>DEBUG</logLevel>
  <!--Whether to log HTTP call request and response bodies and headers-->
  <logHTTP>true</logHTTP>

  <!-- Include the mobileBackend element and its sub-elements if you are going 
       to be using a backend to access custom and platform APIs.-->
  <mobileBackend>
    <name>MBE_NAME</name>
    <baseUrl>BASE_URL</baseUrl>
    <enableAnalytics>true</enableAnalytics>
    <authentication>
      <!--possible values for type are [oauth, basic, facebook, tokenExchange ]-->
      <type>AUTH_TYPE</type>
      <oauth>
        <clientId>CLIENT_ID</clientId>
        <clientSecret>CLIENT_SECRET</clientSecret>
        <enableOffline>true</enableOffline>
      </oauth>
      <basic>
        <mobileBackendId>MOBILE_BACKEND_ID</mobileBackendID>
        <anonymousKey>ANONYMOUS_KEY</anonymousKey>
        <enableOffline></enableOffline>
      </basic>
      <facebook>
        <appId>FACEBOOK_APP_ID</appId>
        <scopes>public_profile,user_friends,email,user_location,user_birthday</scopes>
        <basic>
          <mobileBackendId>MOBILE_BACKEND_ID</mobileBackendID>
          <anonymousKey>ANONYMOUS_KEY</anonymousKey>
        </basic>
      </facebook>
      <tokenExchange>
        <! tokenExchange can contain an 'oauth' sub-element or a 'basic' sub-element.
        <oauth>
          <clientId>CLIENT_ID</clientId>
          <clientSecret>CLIENT_SECRET</clientSecret>
        </oauth>
        <basic>
          <mobileBackendId>MOBILE_BACKEND_ID</mobileBackendID>
          <anonymousKey>ANONYMOUS_KEY</anonymousKey>
        </basic>
      <tokenExchange>
    </authentication>
    <!-- additional properties go here -->
  </mobileBackend>

</config>

I valori da compilare per un determinato backend sono disponibili nelle pagine Impostazioni e Profilo applicazione del backend mobile corrispondente.

Di seguito sono riportate alcune note aggiuntive sugli elementi del file.

  • oAuthTokenEndPoint: l'URL del server OAuth dal quale l'applicazione ottiene il token di autenticazione. È necessario fornire questa chiave per tutte le applicazioni che si basano su OAuth per l'autenticazione. Si ottiene dalla pagina Impostazioni del backend.

  • logLevel: determina la quantità di log SDK visualizzato nella console dell'applicazione. Il valore predefinito è ERROR. Altri valori possibili (in aumento del livello di dettaglio) sono WARNING, INFO e DEBUG. È inoltre possibile specificare NONE.

  • enableLogger: se è impostato su true, l'accesso viene incluso nell'applicazione.

  • logHTTP: se impostato su true, SDK registra le intestazioni HTTP e HTTPS in richieste e risposte.

  • mobileBackend: un elemento che contiene i dettagli di autenticazione per il backend e altri dettagli facoltativi, quali le proprietà di sincronizzazione.

    I dettagli di autenticazione, quali le credenziali OAuth e HTTP, vengono ottenuti dalla pagina Impostazioni del backend.

  • mobileBackend/baseUrl: l'URL di base per tutte le API richiamate tramite il backend. Si ottiene dalla pagina Impostazioni del backend.

  • mobileBackend/authentication: contiene i seguenti sottoelementi:

    • Il sottoelemento type, con i valori possibili di oauth, basic, facebook e tokenExchange.

    • Uno o più sottoelementi per i tipi di autenticazione, ognuno contenente le credenziali di autenticazione.

      È inoltre possibile aggiungere la chiave offlineEnabled e impostarne il valore su true.

  • enableOffline: se è impostato su true, è consentito il login non in linea. Ciò è valido solo per i tipi di login di base e OAuth. Per garantire il corretto funzionamento, è necessario aggiungere anche i seguenti elementi al file AndroidManifest.xml dell'applicazione:
    <receiver android:name="oracle.cloud.mobile.network.NetworkHelper"
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
      </intent-filter>
    </receiver>

Configura file manifest Android

Le autorizzazioni per operazioni quali l'accesso alla rete e la ricerca dello stato di rete vengono controllate mediante le impostazioni di autorizzazione nel file manifest dell'applicazione, AndroidManifest.xml. Queste autorizzazioni sono obbligatorie:

  • permission.INTERNET: consente all'applicazione di accedere ai socket di rete aperti.

  • permission.ACCESS_NETWORK_STATE: consente all'applicazione di accedere alle informazioni sulle reti.

Altre autorizzazioni sono facoltative. Ad esempio, esistono varie autorizzazioni necessarie per la ricezione delle notifiche da parte dell'applicazione. Per l'esecuzione del drill-down sulle autorizzazioni disponibili, vedere Autorizzazioni manifest Android nella documentazione di Google.

Aggiungere le autorizzazioni nella parte superiore del file AndroidManifest.xml, come mostrato nell'esempio seguente:

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="oracle.cloud.mobile.sample" >
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

  <application>
<provider
	android:name="com.facebook.FacebookContentProvider"
	android:authorities="com.facebook.app.FacebookContentProvider430660953811847"
	android:exported="true" />    
<receiver 
	android:name="oracle.cloud.mobile.network.NetworkHelper"
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
      </intent-filter>
    </receiver>

    (.....)
  </application>
</manifest>

L'aggiunta del kit SDK client all'applicazione potrebbe richiedere la configurazione del file AndroidManifest.xml per aggiungere nuove autorizzazioni o attività. Ad esempio, se si aggiunge la singola libreria SDK Notifiche, potrebbe essere necessario aggiungere un nuovo destinatario della trasmissione.