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.
-
Decomprimere il file zip SDK del client Android.
-
Copiare i file JAR SDK nella cartella
libs
del progetto dell'applicazione. Se questa cartella non esiste, crearla allo stesso livello della gerarchia delle cartellesrc
ebuild
. -
In Android Studio, selezionare File, Nuovo, quindi Nuovo modulo per avviare la procedura guidata per importare
IDMMobileSDK.jar
nel progetto. - Fare clic su Importa package.JAR/.AAR e seguire la procedura guidata per importare il file
IDMMobileSDK.jar
nel progetto. -
Nella struttura di origine dell'applicazione creare una cartella denominata
assets
(nello stesso livello delle cartellejava
eres
). -
Nel bundle SDK individuare il file
oracle_mobile_cloud_config.xml
e copiarlo nella cartellaassets
. -
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.+' }
-
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'
-
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
eoAuthTokenEndpoint
. 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) sonoWARNING
,INFO
eDEBUG
. È inoltre possibile specificareNONE
. -
enableLogger
: se è impostato sutrue
, l'accesso viene incluso nell'applicazione. -
logHTTP
: se impostato sutrue
, 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 dioauth
,basic
,facebook
etokenExchange
. -
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 sutrue
.
-
-
enableOffline
: se è impostato sutrue
, è 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 fileAndroidManifest.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.