Unity3D Android Baidu Duoku SDK Integration - 1. 준비작업

 요즘은 유니티3D 안드로이드에 중국 마켓들의 SDK 연동작업을 진행중입니다. GameNoll과 91 마켓 플랫폼 SDK에 이어 이번에는 중국 최대 검색 공룡회사인 바이두(Baidu)의 Duoku SDK 연동에 대해 정리해봅니다. 91.com 플랫폼 SDK 마지막 연동 정리때 언급했듯이 91이 바이두에 먹혔기 때문에 지금 정리중인 바이두와 정리를 했던 91 마켓의 내용이 달라질 수 있습니다.



1. 유니티3D 안드로이드 플러그인 기본 작업

 유니티3D 안드로이드 플러그인 프로젝트를 만들어 기본 처리를 합니다. 패키지명으로 com.wwforever.plugindk로 했습니다. 91 마켓 플랫폼 SDK와 마찬가지로 패키지명에 dk가 포함이 되어야합니다.


2. Import Duoku SDK Lib

 Duoku SDK 압축 해제 후 Duoku_Sdk_Project/libs에 있는 jar파일들을 Java Build Path -> Add External Jars로 가져옵니다. 스샷과 같이 android_api.jar, DkPlatformSdk.jar 만 가져오고 같이 있는 android-support-v4.jar는 이미 기본적으로 포함되어 있으니 생략합니다. weibo.sdk.android.sso.jar는 불필요해 보이니 이것도 생략합니다.


3. AndroidManifest.xml 수정

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />


<meta-data android:name="DUOKUSDK_CHANNEL"
           android:value="700" />
        <activity
        android:name="com.duoku.platform.ui.ChargeCenterActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowBackground="@null" >
        </activity>
        <activity
          android:name="com.duoku.platform.ui.ExchangeActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowBackground="@null" >
        </activity>
        <activity
          android:name="com.duoku.platform.ui.TradeResultActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowBackground="@null" >
        </activity>
        <activity
          android:name="com.duoku.platform.ui.DKLoginActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowBackground="@null" >
        </activity>
        <activity
          android:name="com.duoku.platform.ui.DKAccountManagerActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowBackground="@null" >
        </activity>
        <activity
          android:name="com.duoku.platform.ui.DKLoginBdActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowBackground="@null" >
        </activity>
        <activity
          android:name="com.duoku.platform.ui.DKRegisterActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowBackground="@null" >
        </activity>
        <activity
          android:name="com.duoku.platform.ui.DKFindPwdHintActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
          android:excludeFromRecents="true">
        </activity>
        <activity
          android:name="com.duoku.platform.ui.DKLicenceActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
          android:excludeFromRecents="true">
        </activity>
        <activity
          android:name="com.duoku.platform.ui.DKReqBindPhoneActivity"
          android:configChanges="orientation|keyboardHidden|navigation|screenSize"
          android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
          android:excludeFromRecents="true">
        </activity>
        <activity
          android:name="com.tencent.tauth.AuthActivity"
          android:launchMode="singleTask"
          android:noHistory="true" >
          <intent-filter>
              <action android:name="android.intent.action.VIEW" />
                   <category android:name="android.intent.category.DEFAULT" />
                   <category android:name="android.intent.category.BROWSABLE" />
                   <data android:scheme="tencent100414076" />
                   </intent-filter>
        </activity>

 유저 퍼미션과 액티비티를 추가해줍니다. 또한 DUOKUSDK_CHANNEL 이라는 메타 데이터 부분이 빠지면 나중에 로그인이 안될 수 있습니다.

4. Duoku SDK, res 플러그인 디렉터리에 복사


 유니티3D 안드로이드 플러그인 디렉터리에 Duoku_Sdk_Project\libs에 있는 android_api.jar, android-support-v4.jar, DkPlatformSdk.jar 파일을 복사합니다. 그리고 상위 디렉터리에 있는 res를 복사합니다. res를 복사하지 않으면 91 마켓 처럼 Resources NotFoundException 에러가 발생합니다. DKPlugin.jar는 현재 만들고 있는 플러그인 프로젝트 jar 파일입니다.

 다음에는 Duoku Init, Login, Logout 처리를 정리하겠습니다.

댓글

이 블로그의 인기 게시물

CMake Windows에 설치하기

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

크로스 스레드 작업이 잘못되었습니다. xxx 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스되었습니다