モバイル・アプリケーションを使用したOracle Mobile Hub SDKの構成
コードを記述する前に、モバイル・アプリケーションを使用してOracle Mobile Hub SDKを構成する必要があります。
SDKの追加
基本的なアプリケーション設定では、フレームワークを介さずに、AndroidクライアントSDKをアプリケーションに追加します。
-
AndroidクライアントSDK zipファイルを解凍します。
-
SDK jarを、アプリケーションのプロジェクトの
libs
フォルダにコピーします。このフォルダが存在しない場合は、src
およびbuild
フォルダと同じ階層レベルでフォルダを作成します。 -
Android Studioで、「ファイル」、「新規」、「新規モジュール」の順に選択し、ウィザードを起動して
IDMMobileSDK.jar
をプロジェクトにインポートします。 - 「.JAR /.AARパッケージのインポート」をクリックし、ウィザードに従って
IDMMobileSDK.jar
をプロジェクトにインポートします。 -
アプリケーションのソース・ツリーで、
assets
という名前のフォルダを(java
およびres
フォルダと同じレベルで)作成します。 -
SDKバンドルで、
oracle_mobile_cloud_config.xml
ファイルを見つけて、それをassets
フォルダにコピーします。 -
アプリの
build.gradle
ファイルで、SDKライブラリをアプリで使用できるように、登録済の依存関係の中に次のものがあることを確認します。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.+' }
-
アプリケーションが分析キャンペーンの一部として通知を受信するように設計されている場合は、
build.gradle
の最下部に次の行を追加します。apply plugin: 'com.google.gms.google-services'
-
assets/oracle_mobile_cloud_config.xml
を開いて、アプリケーションが使用するモバイル・バックエンドの環境詳細を入力します。
SDKプロパティの構成
AndroidアプリケーションでクライアントSDKを使用するには、アプリケーションにoracle_mobile_cloud_config.xml
構成ファイルを追加し、Oracle Mobile Hubでバックエンドの環境の詳細を入力する必要があります。これに対して、SDKクラスはこの情報を使用して、Oracle Mobile Hubに対して行われたRESTコールのHTTPヘッダーを構築します。
java
フォルダとres
フォルダと同じレベルで、アプリケーションのメイン・バンドルの構成ファイルをassets
フォルダにパッケージ化します。たとえば、サンプルのGettingStarted
アプリケーションでは、/GettingStarted/src/main/assets
にあります。
ファイルは、基本的に次の部分に分かれています。
-
mobileBackend
要素およびそのコンテンツ。この部分は、アプリケーションでバックエンドを使用している場合に含めます。SDKクラスは、ここで指定する環境および認証の詳細を使用して、apiへのRESTコールのバックエンドにアクセスし、HTTPヘッダーを構成します。
-
構成全体に適用される要素(
logLevel
やoAuthTokenEndpoint
など)。これらの要素は通常、ファイルの先頭に表示されますが、必須ではありません。
次のコード・サンプルは、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>
特定のバックエンドに入力する必要のある値は、そのモバイル・バックエンドの設定およびアプリ・プロファイル・ページに表示されます。
ファイルの要素に関するその他の注釈を次に示します。
-
oAuthTokenEndPoint
—アプリケーションが認証トークンを取得する元のOAuthサーバーのURL。この鍵は、OAuthに依存して認証するすべてのアプリケーションに指定する必要があります。これはバックエンドの「Settings」ページから取得します。 -
logLevel
—アプリケーションのコンソールに表示されるSDKロギングの量を決定します。デフォルト値はERROR
です。その他の使用可能な値(詳細レベルの向上)は、WARNING
、INFO
およびDEBUG
です。NONE
を指定することもできます。 -
enableLogger
—true
に設定すると、アプリケーションにロギングが含まれます。 -
logHTTP
—true
に設定すると、SDKはリクエストとレスポンスでHTTPおよびHTTPSヘッダーを記録します。 -
mobileBackend
—バックエンドの認証の詳細と、同期プロパティなどその他のオプションの詳細を含む要素。OAuthおよびHTTP資格証明などの認証の詳細をバックエンドの「設定」ページから取得します。
-
mobileBackend/baseUrl
—バックエンドを介してコールするすべてのapiのベースURL。これはバックエンドの「Settings」ページから取得します。 -
mobileBackend/authentication
—次のサブ要素が含まれます。-
type
サブ要素。可能な値はoauth
、basic
、facebook
およびtokenExchange
です。 -
認証タイプの1つ以上のサブ要素(それぞれ認証資格証明を含む)。
offlineEnabled
キーを追加し、その値をtrue
に設定することもできます。
-
-
enableOffline
—true
に設定すると、オフライン・ログインが許可されます。これは、「基本」および「OAuth」ログイン・タイプにのみ適用されます。これが機能するには、アプリケーションのAndroidManifest.xml
ファイルに次のものを追加する必要もあります。<receiver android:name="oracle.cloud.mobile.network.NetworkHelper" <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
Androidマニフェスト・ファイルの構成
ネットワークへのアクセスやネットワーク状態の検索などの操作に対するアクセス権は、アプリケーションのマニフェスト・ファイルAndroidManifest.xml
のアクセス権設定で制御されます。次の権限が必要です。
-
permission.INTERNET
—オープン・ネットワーク・ソケットにアプリケーションからアクセスできます。 -
permission.ACCESS_NETWORK_STATE
—アプリケーションがネットワークに関する情報にアクセスできるようにします。
その他の権限はオプションです。たとえば、通知を受信できるようにするためにアプリケーションで必要な権限が多数あります。使用可能な権限について実行が必要な場合は、GoogleドキュメントのAndroidマニフェスト権限を参照してください。
次の例に示すように、AndroidManifest.xml
ファイルの上部に権限を追加します。
<?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>
クライアントSDKをアプリケーションに追加するには、新しい権限やアクティビティを追加するようにAndroidManifest.xml
ファイルを構成することが必要な場合があります。たとえば、通知個々のSDKライブラリを追加する場合は、新しいブロードキャスト受信者の追加も必要になることがあります。