2013-07-15 9 views

答えて

15

はい、これはテストアカウントから可能です。これはちょっと難しいのでここでいくつかのコード例です。

はあなたのマニフェストにこれを追加します。

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

そして、ここでは、アプリケーション内で実行される実際のコードです。 BaseGameActivityに基づいたアクティビティに追加されました。

public void resetAchievements() 
{ 
    if(isSignedIn()) 
    { 
     String accountName = getGamesClient().getCurrentAccountName();  
     String scopes = getScopes(); 

     new ResetterTask(this, accountName, scopes).execute((Void) null); 
    } 
} 

private class ResetterTask extends AsyncTask<Void, Void, Void> 
{ 
    public String mAccountName; 
    public String mScope; 
    public Context mContext; 

    public ResetterTask(Context con, String name, String sc) 
    { 
     mContext = con; 
     mAccountName = name; 
     mScope = sc; 
    } 

    @Override 
    protected Void doInBackground(Void... params) 
    { 
     try 
     { 
      String accesstoken = GoogleAuthUtil.getToken(mContext, mAccountName, mScope); 

      HttpClient client = new DefaultHttpClient();     
      //Reset leader board: 
      /*String leaderboardid = "theleaderboardid"; 
      HttpPost post = new HttpPost 
        (
         "https://www.googleapis.com"+ 
         "/games/v1management"+ 
         "/leaderboards/"+ 
         leaderboardid+ 
         "/scores/reset?access_token="+accesstoken 
        );*/ 

      //Reset a single achievement like this: 
      /* 
      String acheivementid = "acheivementid"; 
      HttpPost post = new HttpPost 
        (
         "https://www.googleapis.com"+ 
         "/games/v1management"+ 
         "/achievements/"+ 
         acheivementid+ 
         "/reset?access_token="+accesstoken 
        );*/ 

      //This resets all achievements: 
      HttpPost post = new HttpPost 
        (
         "https://www.googleapis.com"+ 
         "/games/v1management"+ 
         "/achievements"+ 
         "/reset?access_token="+accesstoken 
        ); 


      client.execute(post); 
      Log.w(LogTag, "Reset achievements done."); 
     } 
     catch(Exception e) 
     { 
      Log.e(LogTag, "Failed to reset: " + e.getMessage(), e); 
     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) 
    { 
     //Launch activity to refresh data on client. 
     //NOTE: Incremental achievements will look like they are not reset. 
     //However, next time you and some steps it will start from 0 and 
     //gui will look ok. 
     startActivityForResult(getGamesClient().getAchievementsIntent(), 0); 
    } 
} 
+0

私はこれを最新のAPIで動作させようとしていますが、私は "getScopes()"と苦労しています。誰が私にこれを見つけるのか教えてもらえますか?それとも、何を返すべきか?ありがとう。 –

+2

@Will Calderwoodこの方法はまだ動作しますが、GoogleはGamesClient APIを変更しました。電子メールの場合は "[email protected]"を使用し、範囲(nospace)の場合は "otth2:h ttps://www.googleapis.com/auth/games" – Gak2

1

これを達成する別の方法があります。開発者サイトのゲームサービスエリアのリーダーボードに移動します。次に、リーダーボードの1つを選択します。 Orderingオプションを「Largeer is better」から「Smaller is better」に、またはその逆に変更します。保存してから元に戻してください。

これは、現在そのビッグバナーのために持っている値を消去します。もちろん、テスト中は実行可能です。

関連する問題