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.

  1. Descompacte o arquivo zip SDK do cliente Android.

  2. 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 pastas src e build.

  3. 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.

  4. Clique em Importar Pacote .JAR/.AAR e siga o assistente para importar o IDMMobileSDK.jar para o projeto.
  5. Na árvore de origem do aplicativo, crie uma pasta chamada assets (no mesmo nível das pastas java e res).

  6. No pacote SDK, localize o arquivo oracle_mobile_cloud_config.xml e copie-o na pasta assets.

  7. 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.+'
    }
  8. 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'
  9. 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 e oAuthTokenEndpoint. 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ão WARNING, INFO e DEBUG. Também é possível especificar NONE.

  • enableLogger — Quando definido como true, o log é incluído no seu aplicativo.

  • logHTTP — Quando definido como true, 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 de oauth, basic, facebook e tokenExchange.

    • 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 como true.

  • enableOffline — Se definido como true, 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 arquivo AndroidManifest.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.