【重要】Mobage Unity SDK (Android) 1.4 以降の変更点

Mobage Native / Unity SDK 1.4 以降では、今までの SDK で対応が不十分だった複数の Activity を持つアプリへの対応をいたしました。この対応により、API の呼び出し方法や AndroidManifest.xml の記載方法に大幅な変更が生じ、1.4 未満のバージョンとの互換性が失われました。

本ドキュメントでは、Mobage Native / Unity SDK 1.4 未満を使用されていたデベロッパー様向けに差分を記載したドキュメントとなります。初めて Mobage Native / Unity SDK を使用される場合には、各 SDK のドキュメントの 1.4 以降について記載された箇所を確認しながら実装して下さい。

Mobage Native SDK のバージョンを入れ替える場合は、必ず旧 SDK に含まれる全てのリソースを削除してから入れ替えを行って下さい。特に Mobage Native SDK 1.4.5 未満から、SDK 1.4.5 以降に移行する場合は、1.4.5 で libmobage.so が削除されていますので、課金周りで問題が発生する可能性があります。

AndroidManifest.xml の変更

  • AndroidManifest.xml の Main の Activity 内に記載されている android:launchMode の設定を "singleTask"にして下さい。
    2014/05/28 までは、singleTop または standard に設定して頂くようにお願いしていましたが、Unity SDK をお使いの場合には singleTask に設定していただくように変更いたしました。
  • AndroidManifest.xml の Main の Activity 内に記載されている Intent Filter を削除して下さい。
  • 以下の Activity を追加してください。
     
  • 従来の mobage-jp-${YourApplicationId} は使用できません。広告サービス等で Intent 起動が必要な場合は別の名前の scheme を Main の Activity に設定して下さい。

変更されたメソッド一覧

Mobage Native / Unity SDK 1.4 以降より、SDK の変更点として以下のようなメソッドの差分があります。主にライフサイクル系メソッドの仕様が変更されました。

(Unity SDK では Unity プラグインの Java 側の実装が以下に準じます)

  • Mobage Native / Unity SDK 1.4 以降で削除された API
    • Mobage.onResume()
    • Mobage.onPause()
    • Mobage.onStop()
    • Mobage.onRestart()
    • Mobage.addPlatformListener(Mobage.PlatformListener listener)
  • Mobage Native / Unity SDK 1.4 以降で追加された API
    • Mobage.onCreate(Activity activity)
    • Mobage.onStart(Activity activity)
    • Mobage.onResume(Activity activity)
    • Mobage.onPause(Activity activity)
    • Mobage.onStop(Activity activity)
    • Mobage.onRestart(Activity activity)
    • Mobage.onDestroy(Activity activity)
    • Mobage.addPlatformListener(Activity activity, Mobage.PlatformListener listener)
  • Mobage Native / Unity SDK 1.4 以降で非推奨となった API
    • Mobage.setCurrentActivity(Activity activity)
      • 上記メソッドの使用は不要となりました。

実装方法の変更

Main の Activity の実装方法

Main の Activity の onCreate 内で以下のメソッドを以下の順番でコールする必要があります。

(Unity SDK では Unity プラグインの Java側の MobageUnitySDKActivity の実装が以下に準じます)

1. Mobage.registerResources();
2. Mobage.initialize();
3. Mobage.registerTick();
4. Mobage.onCreate(this);

上記メソッド 1 〜 3 は Main の Activity で一度だけ呼んで下さい。

ログインリスナーの登録は引数に Activity が追加されました。Mobage.checkLoginStatus は 今までどおりコールして下さい。

具体的には以下のように onCreate 内に実装します。

Mobage Native SDK 1.4.7 より、initialize メソッドに boolean showSplashScreen が引数に追加され、従来の initialize メソッドは deprecated になりました。

各 Activity で共通の実装

各 Activity の ライフサイクル系メソッド内で、Mobage SDK の API を呼ぶ必要があります。

(Unity SDK では Unity プラグインの Java側の MobageUnitySDKActivity の実装が以下に準じます)

ログインリスナーの設定

addPlatformListener の引数が以下のように変更になりました。

(Unity SDK では Unity プラグインの Java側の MobageUnitySDKActivity の実装が以下に準じます)

  • 変更後:

また、Main の Activity 以外でログインリスナーを受け取りたい場合には、他の Activity にも Main の Activity と同様にログインリスナーを実装する必要がありますのでご注意下さい。

更新履歴 

  • 2014/08/20
    • 従来の initialize メソッドが deprecated になり、引数に boolean showSplashScreen が増えたのでドキュメントを修正
  • 2014/05/28
    • Unity SDK に不具合が発見されたため、ドキュメント記載の launchMode の設定を singleTask 指定に変更いたしました。
  • 2013/11/13
    • Unity側で不具合発生する場合があるため、launchModeをsingleTopに変更
  • 2012/12/26
    • Mobage Unity SDK 1.4.0.1 リリースに伴い追記
  • 2012/12/21
    • 新規作成 

PREVIOUS

【重要】Android ゲームポイント対応について

NEXT

Mobage Unity SDK (Android 版)