Oracle Mobile Hub -SDK mit Ihrer App konfigurieren
Sie müssen das Oracle Mobile Hub-SDK mit Ihrer Mobile-Anwendung konfigurieren, bevor Sie Code schreiben.
SDK hinzufügen
In einem Basis-App-Setup ohne Interpunkting Frameworks fügen Sie das Android-Client-SDK zu einer App hinzu.
-
Dekomprimieren Sie die Android-Client-SDK-ZIP-Datei.
-
Kopieren Sie die SDK-JARs in den Ordner
libs
im Projekt Ihrer App. Wenn dieser Ordner nicht vorhanden ist, erstellen Sie ihn auf derselben Ebene in der Hierarchie wie die Ordnersrc
undbuild
. -
Wählen Sie In Android Studio die Optionen Datei , Neu , Neues Modul aus, um den Assistenten zum Importieren von
IDMMobileSDK.jar
In das Projekt zu starten. - Klicken Sie auf .JAR/.AAR Package importieren, und befolgen Sie den Assistenten, um die Datei
IDMMobileSDK.jar
in das Projekt zu importieren. -
Erstellen Sie In der Quellbaumstruktur für die Anwendung einen Ordner namens
assets
(auf derselben Ebene wie die Ordnerjava
undres
). -
Suchen Sie im SDK-Bundle die Datei
oracle_mobile_cloud_config.xml
, und kopieren Sie sie In den Ordnerassets
. -
Stellen Sie In der Datei
build.gradle
der App sicher, dass die folgenden Abhängigkeiten registriert sind, damit die SDK-Librarys für die App verfügbar sind.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.+' }
-
Wenn die App Benachrichtigungen als Teil von Analysekampagnen erhält, fügen Sie die folgende Zeile am Ende von
build.gradle
hinzu.apply plugin: 'com.google.gms.google-services'
-
Öffnen Sie
assets/oracle_mobile_cloud_config.xml
, und geben Sie die Umgebungsdetails für das mobile Backend ein, das die App verwendet.
SDK-Eigenschaften konfigurieren
Um das Client-SDK in einer Android-App zu verwenden, müssen Sie der App eine oracle_mobile_cloud_config.xml
-Konfigurationsdatei hinzufügen und diese mit Umgebungsdetails für Ihr Backend in Oracle Mobile Hub ausfüllen. Die SDK-Klassen verwenden diese Informationen wiederum, um HTTP-Header für REST-Aufrufe zu erstellen, die an Oracle Mobile Hub vorgenommen wurden.
Sie verpacken die Konfigurationsdatei im Haupt-Bundle Ihrer App im Ordner assets
auf derselben Ebene wie die Ordner java
und res
. Beispiel: In der GettingStarted
-Beispiel-App befindet sich sie im Verzeichnis /GettingStarted/src/main/assets
.
Die Datei ist im Wesentlichen in die folgenden Teile unterteilt:
-
Das
mobileBackend
-Element und sein Inhalt.Sie nehmen diesen Teil auf, wenn Sie ein Backend mit der App verwenden. Die SDK-Klassen verwenden die Umgebungs- und Authentifizierungsdetails, die Sie angeben, um auf das Backend zuzugreifen und HTTP-Header für REST-Aufrufe zu erstellen, die an APIs vorgenommen wurden.
-
Elemente, die für die Konfiguration als Ganzes gelten, wie
logLevel
undoAuthTokenEndpoint
. Diese Elemente werden in der Regel nicht am Anfang der Datei angezeigt.
Das folgende Codebeispiel zeigt die Struktur einer oracle_mobile_cloud_config.xml
-Datei.
<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>
Die Werte, die Sie für ein bestimmtes Backend ausfüllen müssen, sind auf den Einstellungs- und Anwendungsprofilseiten für dieses mobile Backend zu finden.
Hier einige weitere Hinweise zu den Elementen der Datei.
-
oAuthTokenEndPoint
- Die URL des OAuth-Servers, von dem die Anwendung das Authentifizierungstoken abruft. Dieser Schlüssel muss für alle Anwendungen bereitgestellt werden, die von OAuth authentifiziert werden müssen. Diese Informationen erhalten Sie auf der Seite "Einstellungen" des Backends. -
logLevel
- Bestimmt, wie viel SDK-Logging in der Konsole der Anwendung angezeigt wird. Der Standardwert istERROR
. Weitere mögliche Werte (bei einer zunehmenden Detailebene) sindWARNING
,INFO
undDEBUG
. Sie können auchNONE
angeben. -
enableLogger
- Wenn dieser Wert auftrue
gesetzt ist, ist die Anmeldung in Ihrer Anwendung enthalten. -
logHTTP
- Wenn dieser Wert auftrue
gesetzt ist, protokolliert das SDK die HTTP- und HTTPS-Header in Anforderungen und Antworten. -
mobileBackend
- Ein Element mit Authentifizierungsdetails für das Backend und andere optionale Details, wie Synchronisierungseigenschaften.Die Authentifizierungsdetails, wie die OAuth - und HTTP-Zugangsdaten, werden auf der Seite "Einstellungen " des Backends abgerufen.
-
mobileBackend/baseUrl
: Die Basis-URL für alle APIs, die Sie über das Backend aufrufen. Diese Informationen erhalten Sie auf der Seite "Einstellungen" des Backends. -
mobileBackend/authentication
- Enthält die folgenden Unterelemente:-
Das Unterelement
type
mit möglichen Wertenoauth
,basic
,facebook
undtokenExchange
. -
Ein oder mehrere Unterelemente für Authentifizierungstypen, die jeweils Authentifizierungszugangsdaten enthalten.
Sie können auch den
offlineEnabled
-Schlüssel hinzufügen und seinen Wert auftrue
setzen.
-
-
enableOffline
- Wenn die Option auftrue
gesetzt ist, ist die Offlineanmeldung zulässig. Dies gilt nur für die Anmeldetypen "Basis" und "OAuth". Dazu müssen Sie auch Folgendes zur DateiAndroidManifest.xml
der Anwendung hinzufügen:<receiver android:name="oracle.cloud.mobile.network.NetworkHelper" <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
Android-Manifestdatei konfigurieren
Berechtigungen für Vorgänge, wie den Zugriff auf das Netzwerk und die Suche nach dem Netzwerkstatus, werden über die Berechtigungseinstellungen in der Manifestdatei der Anwendung, AndroidManifest.xml
, gesteuert. Diese Berechtigungen sind erforderlich:
-
permission.INTERNET
- Lässt zu, dass die App auf geöffnete Netzwerk-Sockets zugreift. -
permission.ACCESS_NETWORK_STATE
- Lässt zu, dass Ihre App auf Informationen über Netzwerke zugreift.
Andere Berechtigungen sind optional. Beispiel: Für die App ist eine Reihe von Berechtigungen erforderlich, damit sie Benachrichtigungen empfangen kann. Einen runDown über die verfügbaren Berechtigungen finden Sie in den Android-Manifer-Berechtigungen in der Google-Dokumentation.
Fügen Sie oben in der Datei AndroidManifest.xml
die Berechtigungen hinzu, wie im folgenden Beispiel gezeigt:
<?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>
Wenn Sie das Client-SDK zu Ihrer Anwendung hinzufügen, müssen Sie die Datei AndroidManifest.xml
möglicherweise so konfigurieren, dass Sie neue Berechtigungen oder Aktivitäten hinzufügen. Beispiel: Wenn Sie die individuelle SDK-Library "Benachrichtigungen" hinzufügen, müssen Sie möglicherweise auch einen neuen Broadcast-Empfänger hinzufügen.