2013年12月22日

[Android] Google Play Service を導入してみた

100マス計算Google Play Serviceを使いました。

これまで、ランキングと実績は「Pankia」を利用していましたが、
Androidを扱っているGoogleなら今後も安心できそうなので切替えました。

実装方法はこのサイトを参考にしました↓

・Corona SDKでGoogle Play Game Servicesを使ってみた。
http://dat.plastica-romantica.com/log751.html

・Google Game Service 実装時のまとめ Android
http://blog.77jp.net/google-game-service-develop-android

・【Android】Google Play Game Servicesを試してみたい#1〜#5
http://kforce-ueda.hatenablog.com/entry/2013/09/12/223912


ハマった点だったり、注意しなくちゃと思った点は、

@テスト用とリリース用で登録するキーストアが異なる
→テストでうまくいっても、リリース後にGooglePlayServiceを利用できない

【デバッグ用のフィンガープリントを取得するときのDOSコマンド】
keytool -exportcert -alias [デバッグ用キー] -keystore [デバッグ用キーストアdebug.keystore] -list -v
※リリース用には別途リリース用のキーストアで作成する必要あり
→これを忘れてリリースしてしまい動作しませんでした orz
→慌ててリリース用キーストアでフィンガープリントを取得&管理画面から追加登録して事なきを得ました

リリース後にデバッグ用のフィンガープリントを使ってGoogle Play Serviceを使おうとすると
こんなエラーが出ました↓
---------------------------------------------------
ot.a: Unexpected response code 403 for https://www.googleapis.com/games/v1/players/me
---------------------------------------------------
実機の画面はこんな感じ↓
20131220hundred010.png


AGoogle Play Serviceは Android SDK Manager から最新版をDLしておくこと
→EclipseのUpdateも忘れずに!


B既存のAdMob広告があると、Google Play Service ライブラリ内のAdMobライブラリと競合する。
→既存AdMobライブラリの使用を止めて、Google Play Service内のAdMobライブラリを使用
【参考】
https://gist.github.com/matsumo/7314819


Cリリース時にはGoogle Play Service を「公開」にしておくこと

この状態でテストしたままだと、リリースしても動かない↓
20131220hundred006.png

Google Play Service を「公開」にするとこうなる↓
20131220hundred008.png

ステータスも「公開中」にっ!
20131220hundred009.png



@で苦戦した以外は、スムーズに作業は進みました。


プログラムで使った命令はこれくらい。

-------------------------------------------------------
// サインインする
beginUserInitiatedSignIn();

// サインアウトする
signOut();

// サインインしているか
isSignedIn();

// リーダーボードにスコアを送信
getGamesClient().submitScore([リーダーボードのID(文字列)], [LONG型のスコア]);

// リーダーボードを表示
final int RC_UNUSED = 5001; ※参考サイトを参考
startActivityForResult(getGamesClient().getAllLeaderboardsIntent(), RC_UNUSED);

// 実績を開放
getGamesClient().unlockAchievement([実績のID(文字列));

// 実績を表示
startActivityForResult(getGamesClient().getAchievementsIntent(), RC_UNUSED);
-------------------------------------------------------

他にも色々な命令があるので機会があれば使ってみたい。
セーブデータを保存する機能もあるらしいので、こちらも気になります。

ただ、Google Play Service を利用するためには Google+ のアカウントが必要です。
Google+ って実名登録なので、利用する人は減りそう……。

まずはやってみないとね!
posted by be-style at 19:47| Comment(0) | Android
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。