모바일 애플리케이션을 사용하여 Oracle Mobile Hub SDK 구성
코드를 작성하려면 먼저 모바일 애플리케이션을 사용하여 Oracle Mobile Hub SDK를 구성해야 합니다.
SDK 추가
기본 앱 설정에서 내부 프레임워크 없이 Android 클라이언트 SDK를 앱에 추가합니다.
-
Android 클라이언트 SDK zip 파일의 압축을 해제합니다.
-
앱 프로젝트의
libs
폴더에 SDK jar를 복사합니다. 이 폴더가 없으면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 에 의존하는 모든 응용 프로그램에 대해 이 키를 제공해야 합니다. 백엔드의 설정 페이지에서 항목을 가져옵니다. -
logLevel
— 응용 프로그램 콘솔에 SDK 로깅이 표시되는 양을 결정합니다. 기본값은ERROR
입니다. 기타 가능한 값 (세부정보 레벨 증가) 은WARNING
,INFO
및DEBUG
입니다.NONE
을 지정할 수도 있습니다. -
enableLogger
—true
로 설정되면 로깅이 애플리케이션에 포함됩니다. -
logHTTP
—true
로 설정된 경우 SDK는 요청 및 응답에 HTTP 및 HTTPS 헤더를 기록합니다. -
mobileBackend
— 백엔드에 대한 인증 세부정보 및 기타 선택적 세부정보 (예: 동기화 속성) 를 포함하는 요소입니다.백엔드의 설정 페이지에서 OAuth 및 HTTP 인증서와 같은 인증 세부정보를 가져옵니다.
-
mobileBackend/baseUrl
— 백엔드를 통해 호출하는 모든 api에 대한 기본 URL입니다. 백엔드의 설정 페이지에서 항목을 가져옵니다. -
mobileBackend/authentication
— 다음과 같은 하위 요소를 포함합니다.-
type
하위 요소로,oauth
,basic
,facebook
및tokenExchange
의 가능한 값입니다. -
각각 인증서를 포함하는 인증 유형에 대한 하나 이상의 하위 요소입니다.
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 Manifest 파일 구성
네트워크 액세스, 네트워크 상태 찾기 등의 작업에 대한 권한은 응용 프로그램의 매니페스트 파일 AndroidManifest.xml
의 권한 설정을 통해 제어됩니다. 다음 권한이 필요합니다.
-
permission.INTERNET
— 응용 프로그램에서 열린 네트워크 소켓에 액세스할 수 있습니다. -
permission.ACCESS_NETWORK_STATE
— 응용 프로그램에서 네트워크 정보에 액세스할 수 있습니다.
다른 권한은 선택 사항입니다. 예를 들어, 앱에서 통지를 수신할 수 있는 많은 권한이 있습니다. 사용 가능한 권한에 대한 런타임은 Google 설명서의 Android Manifest 권한 을 참조하십시오.
다음 예와 같이 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 통지 라이브러리를 추가하는 경우 새 브로드캐스트 수신자를 추가해야 할 수도 있습니다.