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
libsno projeto do aplicativo. Se essa pasta não existir, crie-a no mesmo nível da hierarquia que as pastassrcebuild. -
No Android Studio, selecione Arquivo , Novo e, em seguida, Novo Módulo para iniciar o assistente de importação do
IDMMobileSDK.jarpara o projeto. - Clique em Importar Pacote .JAR/.AAR e siga o assistente para importar o
IDMMobileSDK.jarpara o projeto. -
Na árvore de origem do aplicativo, crie uma pasta chamada
assets(no mesmo nível das pastasjavaeres). -
No pacote SDK, localize o arquivo
oracle_mobile_cloud_config.xmle copie-o na pastaassets. -
No arquivo
build.gradledo 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.xmle 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
mobileBackende 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
logLeveleoAuthTokenEndpoint. 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,INFOeDEBUG. 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,facebooketokenExchange. -
Um ou mais subelementos para tipos de autenticação, cada um contendo credenciais de autenticação.
Você também pode adicionar a chave
offlineEnablede 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.xmlda 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.