2015-01-02 2 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는 하나의 액티비티를 위해 설계되었지만 여러 액티비티로 사용할 수 있습니다. GithHub pages에서 제공하는 샘플을 볼 기회가 있었습니까? 그들은 도움이 될만한 BasicSamples/libraries/BaseGameUtils에 몇 개의 클래스를 가지고 있습니다.

this을 사용하여 주 활동에서 작성자 메소드를 호출하고 있습니다.

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

그런 다음 Api 클라이언트를 응용 프로그램 클래스로 설정합니다. 이제 새로운 GameOverActivity에있을 때 api 클라이언트는 더 이상 화면에없는 활동에 대한보기를 표시하려고합니다. MainActivity에 대한 참조 만 있습니다. Api 클라이언트의 Application 클래스에 변수를 설정하지 마십시오. 이것은 리스너 콜백을 액티비티로 설정하고 콜백 중 하나가 호출 될 때까지는 더 이상 존재하지 않을 수도 있기 때문에 나쁜 관행입니다.

게임 API와 상호 작용하려는 모든 활동은 GitHub의 BaseGameUtils에있는 BaseGameActivity에서 파생되어야합니다. 각 활동에는 getApiClient()이라는 메소드가 있습니다.

관련 문제