Configurar el SDK de Oracle Mobile Hub con la aplicación móvil
Debe configurar Oracle Mobile Hub SDK con la aplicación móvil antes de escribir cualquier código.
Agregar SDK
En una configuración de aplicación básica, sin marcos de sesión, agregará el SDK de cliente de Android a una aplicación.
-
Descomprima el archivo zip del SDK del cliente Android.
-
Copie los archivos jar de SDK en la carpeta
libs
del proyecto de la aplicación. Si esta carpeta no existe, créela en el mismo nivel de la jerarquía que las carpetassrc
ybuild
. -
En Android Studio, seleccione Archivo , Nuevo y, a continuación, Nuevo módulo para iniciar el asistente para importar
IDMMobileSDK.jar
en el proyecto. - Haga clic en Importar Paquete .JAR/.AAR y siga el asistente para importar
IDMMobileSDK.jar
en el proyecto. -
En el árbol de origen de la aplicación, cree una carpeta llamada
assets
(en el mismo nivel que las carpetasjava
yres
). -
En el grupo SDK, localice el archivo
oracle_mobile_cloud_config.xml
y cópielo en la carpetaassets
. -
En el archivo
build.gradle
de la aplicación, asegúrese de que las siguientes dependencias están registradas para que las bibliotecas SDK estén disponibles para la aplicación.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.+' }
-
Si la aplicación está diseñada para recibir notificaciones como parte de campañas de análisis, agregue la siguiente línea en la parte inferior de
build.gradle
.apply plugin: 'com.google.gms.google-services'
-
Abra
assets/oracle_mobile_cloud_config.xml
y rellene los detalles de entorno del backend móvil que utilizará la aplicación.
Configurar Propiedades de SDK
Para utilizar el SDK del cliente en una aplicación de Android, debe agregar un archivo de configuración oracle_mobile_cloud_config.xml
a la aplicación y rellenarlo con los detalles del entorno para su backend en Oracle Mobile Hub. A su vez, las clases SDK utilizan esta información para crear cabeceras HTTP para llamadas REST realizadas a Oracle Mobile Hub.
Empaqueta el archivo de configuración en el grupo principal de la aplicación en la carpeta assets
en el mismo nivel que las carpetas java
y res
. Por ejemplo, en la aplicación GettingStarted
de ejemplo, está en /GettingStarted/src/main/assets
.
El archivo se divide básicamente en las siguientes partes:
-
El elemento
mobileBackend
y su contenido.Se incluye esta pieza si está utilizando un backend con la aplicación. Las clases de SDK utilizan los detalles de entorno y autenticación que especifica que debe acceder al backend y crear cabeceras HTTP para las llamadas de REST realizadas a las API.
-
Elementos que se aplican a la configuración en conjunto, como
logLevel
yoAuthTokenEndpoint
. Normalmente, estos elementos aparecen en la parte superior del archivo, pero no es necesario.
El siguiente ejemplo de código muestra la estructura de un archivo 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>
Los valores que necesita rellenar para un determinado backend se pueden encontrar en las páginas Configuración y Perfil de Aplicación de ese backend móvil.
Aquí se muestran más notas sobre los elementos del archivo.
-
oAuthTokenEndPoint
: URL del servidor de OAuth desde el que la aplicación obtiene su token de autenticación. Esta clave se debe proporcionar para todas las aplicaciones que se basan en OAuth para la autenticación. Este valor se obtiene de la página de valores del backend. -
logLevel
: determina la cantidad de registro de SDK que se muestra en la consola de la aplicación. El valor por defecto esERROR
. Otros valores posibles (en el nivel de aumento de detalle) sonWARNING
,INFO
yDEBUG
. También se puede especificarNONE
. -
enableLogger
: si se define entrue
, el registro se incluye en la aplicación. -
logHTTP
: cuando se define entrue
, el SDK registra las cabeceras HTTP y HTTPS en solicitudes y respuestas. -
mobileBackend
: Elemento que contiene los detalles de autenticación del backend y otros detalles opcionales, como las propiedades de sincronización.Se obtienen los detalles de autenticación, como las credenciales de OAuth y HTTP, de la página Configuración del backend.
-
mobileBackend/baseUrl
: URL base para todas las API a las que llama mediante el backend. Este valor se obtiene de la página de valores del backend. -
mobileBackend/authentication
: contiene los siguientes subelementos:-
Subelemento
type
, con valores posibles deoauth
,basic
,facebook
ytokenExchange
. -
Uno o más subelementos para los tipos de autenticación, cada uno con credenciales de autenticación.
También puede agregar la clave
offlineEnabled
y definir su valor entrue
.
-
-
enableOffline
: si se define entrue
, se permitirá la conexión fuera de línea. Esto sólo se aplica a los tipos de conexión Básica y OAuth. Para que esto funcione, también debe agregar lo siguiente al archivoAndroidManifest.xml
de la aplicación:<receiver android:name="oracle.cloud.mobile.network.NetworkHelper" <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
Configuración del archivo de manifiesto de Android
Los permisos para operaciones como el acceso a la red y la búsqueda del estado de la red se controlan mediante la configuración de permisos en el archivo de manifiesto de la aplicación, AndroidManifest.xml
. Estos permisos son necesarios:
-
permission.INTERNET
: permite que la aplicación acceda a sockets de red abiertos. -
permission.ACCESS_NETWORK_STATE
: permite a su aplicación acceder a información sobre las redes.
Otros permisos son opcionales. Por ejemplo, hay varios permisos necesarios para que la aplicación pueda recibir notificaciones. Para obtener una ejecución de los permisos disponibles, consulte Permisos de manifiesto de Android en la documentación de Google.
Agregue los permisos en la parte superior del archivo AndroidManifest.xml
, como se muestra en el siguiente ejemplo:
<?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>
Para agregar el SDK de cliente a la aplicación puede que sea necesario configurar el archivo AndroidManifest.xml
para agregar nuevos permisos o actividades. Por ejemplo, si agrega la biblioteca de SDK individual Notificaciones, puede que también necesite agregar un nuevo receptor de difusión.