Configure o Oracle Mobile Hub SDK com seu Aplicativo Móvel
Você deve configurar o Oracle Mobile Hub SDK com sua aplicação móvel antes de escrever qualquer código.
Adicionar o SDK
Em uma configuração básica do aplicativo, sem interferir frameworks, você adicionará o SDK do cliente Android a um aplicativo.
-
Descompacte o arquivo zip SDK do cliente Android.
-
Copie os jars do SDK para a pasta
libs
no projeto do aplicativo. Se essa pasta não existir, crie-a no mesmo nível da hierarquia que as pastassrc
ebuild
. -
No Android Studio, selecione Arquivo , Novo e, em seguida, Novo Módulo para iniciar o assistente de importação do
IDMMobileSDK.jar
para o projeto. - Clique em Importar Pacote .JAR/.AAR e siga o assistente para importar o
IDMMobileSDK.jar
para o projeto. -
Na árvore de origem do aplicativo, crie uma pasta chamada
assets
(no mesmo nível das pastasjava
eres
). -
No pacote SDK, localize o arquivo
oracle_mobile_cloud_config.xml
e copie-o na pastaassets
. -
No arquivo
build.gradle
do seu aplicativo, certifique-se de que os itens a seguir estejam entre as dependências registradas para que as bibliotecas do SDK estejam disponíveis para o aplicativo.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 o aplicativo foi projetado para receber notificações como parte de campanhas analíticas, adicione a linha a seguir na parte inferior do
build.gradle
.apply plugin: 'com.google.gms.google-services'
-
Abra
assets/oracle_mobile_cloud_config.xml
e preencha os detalhes do ambiente para o backend móvel que a aplicação usará.
Configurar Propriedades do SDK
Para usar o cliente SDK em uma aplicação Android, você precisa adicionar um arquivo de configuração oracle_mobile_cloud_config.xml
à aplicação e preenchê-lo com detalhes do ambiente para seu backend no Oracle Mobile Hub. Por sua vez, as classes SDK usam essas informações para construir cabeçalhos HTTP para chamadas REST feitas para o Oracle Mobile Hub.
Você empacota o arquivo de configuração no pacote principal do seu aplicativo na pasta assets
no mesmo nível das pastas java
e res
. Por exemplo, no aplicativo GettingStarted
de amostra, está em /GettingStarted/src/main/assets
.
O arquivo é essencialmente dividido nas seguintes partes:
-
O elemento
mobileBackend
e seu conteúdo.Você poderá incluir esta parte se estiver usando um backend com a aplicação. As classes SDK usam os detalhes de ambiente e autenticação que você especifica para acessar o backend e construir cabeçalhos HTTP para chamadas REST feitas a APIs.
-
Elementos que se aplicam à configuração como um todo, como
logLevel
eoAuthTokenEndpoint
. Esses elementos geralmente, mas não têm que aparecer na parte superior do arquivo.
O exemplo de código a seguir mostra a estrutura de um arquivo 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>
Os valores que você precisa preencher para um determinado backend podem ser encontrados nas páginas Definições e Perfil de Aplicação para esse backend móvel.
Aqui estão algumas mais observações sobre os elementos do arquivo.
-
oAuthTokenEndPoint
— O URL do servidor OAuth no qual a aplicação obtém seu token de autenticação. Essa chave precisa ser fornecida para todos os aplicativos que dependem do OAuth para autenticação. Você obtém isso na página Definições do backend. -
logLevel
— Determina o volume de logs de SDK que é exibido na console do aplicativo. O valor padrão éERROR
. Outros valores possíveis (no nível de detalhe) sãoWARNING
,INFO
eDEBUG
. Também é possível especificarNONE
. -
enableLogger
— Quando definido comotrue
, o log é incluído no seu aplicativo. -
logHTTP
— Quando definido comotrue
, o SDK registra os cabeçalhos HTTP e HTTPS nas solicitações e respostas. -
mobileBackend
— Um elemento que contém detalhes de autenticação para seu backend e outros detalhes opcionais, como propriedades de sincronização.Você obtém os detalhes de autenticação, como as credenciais do OAuth e HTTP, na página Definições do backend.
-
mobileBackend/baseUrl
— O URL base de todas as APIs que você chama por meio do backend. Você obtém isso na página Definições do backend. -
mobileBackend/authentication
— Contém os seguintes subelementos:-
O subelemento
type
, com valores possíveis deoauth
,basic
,facebook
etokenExchange
. -
Um ou mais subelementos para tipos de autenticação, cada um contendo credenciais de autenticação.
Você também pode adicionar a chave
offlineEnabled
e definir seu valor comotrue
.
-
-
enableOffline
— Se definido comotrue
, o log-in off-line será permitido. Isso só se aplica aos tipos de log-in Básico e OAuth. Para que isso funcione, você também precisa adicionar o seguinte ao arquivoAndroidManifest.xml
da aplicação:<receiver android:name="oracle.cloud.mobile.network.NetworkHelper" <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
Configurar seu Arquivo de Manifesto do Android
As permissões para operações como acessar a rede e localizar o estado da rede são controladas por meio de definições de permissão no arquivo de manifesto da sua aplicação, AndroidManifest.xml
. Estas permissões são necessárias:
-
permission.INTERNET
— Permite que seu aplicativo acesse soquetes de rede abertos. -
permission.ACCESS_NETWORK_STATE
— Permite que o seu aplicativo acesse informações sobre redes.
Outras permissões são opcionais. Por exemplo, há várias permissões necessárias para que a aplicação receba notificações. Para uma redução das permissões disponíveis, consulte Permissões do Manifesto do Android na documentação do Google.
Adicione as permissões na parte superior do seu arquivo AndroidManifest.xml
, conforme mostrado no exemplo a seguir:
<?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>
A adição do SDK do cliente ao seu aplicativo pode exigir que você configure seu arquivo AndroidManifest.xml
para adicionar novas permissões ou atividades. Por exemplo, se você adicionar a biblioteca SDK individual Notificações, talvez seja necessário adicionar um novo receptor de divulgação.