2015-01-02 19 views
5

アチーブメントのロックを解除すると、「アチーブメントロックが解除されました」というポップアップは表示されませんが、アチーブメントリストに表示されているようにアチーブメントはロックされません。Google Playゲームサービス - ロック解除されたアチーブメントポップアップが表示されない

私は既にthisソリューションを試しましたが、機能しません。私は次の操作を行い、 "活動ゲームオーバー" 私は

gac = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN) 
      .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
      .build(); 
app.setGoogleApiClient(gac); 
gac.connect(); 

を::

は、私は私のMainActivityにこのようなGoogleApiClientを初期化

ApplicationClass app = (ApplicationClass) getApplication(); 
googleApiClient = app.getGoogleApiClient(); 

...と私はこのような成果のロックを解除します:

Games.Achievements.unlock(googleApiClient, "achievement id"); 

ありがとうございます!

答えて

3

ゲームAPIは1つのアクティビティ用に設計されていますが、複数で使用することもできます。 GithHub pagesで提供しているサンプルを見る機会がありましたか? BasicSamples/libraries/BaseGameUtilsにいくつかのクラスがあり、参考になるかもしれません。

メインアクティビティのビルダーメソッドをthisと呼んでいます。

new GoogleApiClient.Builder(this) //this being your MainActivity 

次に、Apiクライアントをアプリケーションクラスに設定します。今、新しいGameOverActivityに入っているときに、apiクライアントは画面に表示されていないアクティビティのビューを表示しようとしています。 MainActivityへの参照のみがあります。 Api ClientのApplicationクラスに変数を設定しないでください。リスナーコールバックをアクティビティに設定し、コールバックが呼び出されるまでにリスナーコールバックが存在しない可能性があるため、これは悪い習慣です。

ゲームAPIとやりとりしたいアクティビティは、GitHubのBaseGameUtilsにあるBaseGameActivityに由来している必要があります。各アクティビティではgetApiClient()というメソッドがあります。

関連する問題