Configurer Oracle Mobile Hub SDK avec l'application mobile

Vous devez configurer le kit SDK Oracle Mobile Hub avec votre application mobile avant d'écrire du code.

Ajouter le kit SDK

Dans une configuration d'application de base, sans créer de structure, vous ajouterez le SDK client Android à une application.

  1. Décompressez le fichier ZIP de SDK client Android.

  2. Copiez les fichiers JAR SDK dans le dossier libs du projet de l'application. Si ce dossier n'existe pas, créez-le au même niveau de votre hiérarchie que les dossiers src et build.

  3. Dans Android Studio, sélectionnez Fichier, Nouveau, puis Nouveau module pour démarrer l'assistant et importer le fichier IDMMobileSDK.jar dans le projet.

  4. Cliquez sur Importer le package.JAR/.AAR et suivez l'assistant pour importer le fichier IDMMobileSDK.jar dans le projet.
  5. Dans l'arborescence source de l'application, créez un dossier nommé assets (au même niveau que les dossiers java et res).

  6. Dans le groupe SDK, localisez le fichier oracle_mobile_cloud_config.xml et copiez-le dans le dossier assets.

  7. Dans le fichier build.gradle de votre application, assurez-vous que les éléments suivants font partie des dépendances inscrites, de sorte que les bibliothèques SDK soient disponibles pour l'application.

    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. Si l'application est conçue pour recevoir des notifications dans le cadre de campagnes d'analyse, ajoutez la ligne suivante au bas de build.gradle.

    apply plugin: 'com.google.gms.google-services'
  9. Ouvrez assets/oracle_mobile_cloud_config.xml et indiquez les détails de l'environnement pour le back-end mobile que l'application utilisera.

Configurer les propriétés SDK

Pour utiliser le kit SDK client dans une application Android, vous devez ajouter un fichier de configuration oracle_mobile_cloud_config.xml à l'application et le remplir avec les détails d'environnement pour votre back-end dans Oracle Mobile Hub. A leur tour, les classes SDK utilisent ces informations pour créer des en-têtes HTTP pour les appels REST effectués vers Oracle Mobile Hub.

Vous packagez le fichier de configuration dans le package principal de votre application, dans le dossier assets, au même niveau que les dossiers java et res. Par exemple, dans l'application GettingStarted échantillon, il se trouve dans /GettingStarted/src/main/assets.

Le fichier est essentiellement divisé en plusieurs parties :

  • L'élément mobileBackend et son contenu.

    Vous incluez cette partie si vous utilisez un back-end avec l'application. Les classes SDK utilisent les détails d'environnement et d'authentification que vous indiquez pour accéder au back-end et construire des en-têtes HTTP pour les appels REST effectués vers des API.

  • Eléments qui s'appliquent à la configuration dans son ensemble, tels que logLevel et oAuthTokenEndpoint. Ces éléments apparaissent généralement mais ne sont pas nécessairement en haut du fichier.

L'exemple de code suivant montre la structure d'un fichier 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>

Les valeurs que vous devez remplir pour un back-end donné se trouvent dans les pages Paramètres et Profil d'application de ce back-end mobile.

Voici quelques remarques supplémentaires sur les éléments du fichier.

  • oAuthTokenEndPoint : URL du serveur OAuth à partir duquel l'application obtient son jeton d'authentification. Cette clé doit être fournie pour toutes les applications reposant sur OAuth pour l'authentification. Pour ce faire, accédez à la page Paramètres du back-end.

  • logLevel : détermine la quantité de journalisation SDK affichée dans la console de l'application. La valeur par défaut est ERROR. Les autres valeurs possibles (en augmentant le niveau de détail) sont WARNING, INFO et DEBUG. Il est également possible d'indiquer NONE.

  • enableLogger : lorsque la valeur true est définie, la journalisation est incluse dans votre application.

  • logHTTP : lorsque cette option est définie sur true, le kit SDK journalise les en-têtes HTTP et HTTPS dans les demandes et les réponses.

  • mobileBackend : élément contenant les détails d'authentification de votre back-end et d'autres détails facultatifs, tels que les propriétés de synchronisation.

    Vous obtenez les détails d'authentification, tels que les informations d'identification et de connexion OAuth et HTTP, à partir de la page Paramètres du back-end.

  • mobileBackend/baseUrl — URL de base pour toutes les API que vous appelez via le back-end. Pour ce faire, accédez à la page Paramètres du back-end.

  • mobileBackend/authentication : contient les sous-éléments suivants :

    • Sous-élément type, avec les valeurs oauth, basic, facebook et tokenExchange.

    • Sous-éléments des types d'authentification, chacun contenant les informations d'identification et de connexion pour l'authentification.

      Vous pouvez également ajouter la clé offlineEnabled et définir sa valeur sur true.

  • enableOffline : si l'option est définie sur true, la connexion hors ligne sera autorisée. Cela s'applique uniquement aux types de connexion de base et OAuth. Pour que cela fonctionne, vous devez également ajouter les éléments suivants au fichier AndroidManifest.xml de l'application :
    <receiver android:name="oracle.cloud.mobile.network.NetworkHelper"
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
      </intent-filter>
    </receiver>

Configurer le fichier manifeste Android

Les droits d'accès aux opérations telles que l'accès au réseau et la recherche de l'état du réseau sont contrôlés via les paramètres de droits d'accès dans le fichier manifeste de l'application, AndroidManifest.xml. Les autorisations suivantes sont requises :

  • permission.INTERNET — Permet à votre application d'accéder aux sockets réseau ouverts.

  • permission.ACCESS_NETWORK_STATE — Permet à votre application d'accéder aux informations relatives aux réseaux.

Les autres autorisations sont facultatives. Par exemple, il existe un certain nombre d'autorisations nécessaires pour que l'application puisse recevoir des notifications. Pour exécuter une exécution sur les droits d'accès disponibles, reportez-vous à Droits d'accès de manifeste Android dans la documentation Google.

Ajoutez les autorisations en haut de votre fichier AndroidManifest.xml, comme indiqué dans l'exemple suivant :

<?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'ajout du SDK client à votre application peut nécessiter la configuration de votre fichier AndroidManifest.xml pour ajouter de nouvelles autorisations ou activités. Par exemple, si vous ajoutez la bibliothèque SDK individuelle Notifications, vous devrez peut-être également ajouter un nouveau récepteur de diffusion.