Google Playゲームサービスで使用されているAndroidアプリケーションからアチーブメント/リーダーボードの結果をリセットできますか?Androidアプリケーションからアチーブメント/リーダーボードをリセットする
8
A
答えて
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);
}
}
1
これを達成する別の方法があります。開発者サイトのゲームサービスエリアのリーダーボードに移動します。次に、リーダーボードの1つを選択します。 Orderingオプションを「Largeer is better」から「Smaller is better」に、またはその逆に変更します。保存してから元に戻してください。
これは、現在そのビッグバナーのために持っている値を消去します。もちろん、テスト中は実行可能です。
関連する問題
- 1. 設定のボタンからiOSアプリケーションの設定をリセットする
- 2. iOSからアプリケーションをリセット/再起動する
- 3. キーワードとアプリケーションのリセットをリセットします。
- 4. AndroidをリセットするsetNetworkPreference
- 5. Android:新しいHelloWorldアプリケーションのインストール、いくつかのアプリケーションアイコンのリセット
- 6. iPhoneアプリケーションのリセット
- 7. Androidフォームのリセット?
- 8. AndroidのリセットDialogFragment
- 9. Androidアプリケーションのロケール設定後にSharedPrefsがリセットされる
- 10. 特定のイベントでアプリケーションをリセットする
- 11. コードからアプリケーションを再起動/リセットすることは可能です
- 12. AngularJs。$ setPristineからフォームをリセットする
- 13. AndroidでオートインクリメントをリセットするSQLite
- 14. ギャラクシーギアs2 - Tizen WebアプリケーションからAndroidアプリケーションを起動する
- 15. アプリケーション内からAndroidアプリケーションを再起動する方法
- 16. 市場からのアップグレード時にアプリケーションの状態をリセットする方法
- 17. Android - ViewPagerスクロールのリセット
- 18. Android:ブラウザからアプリケーションを開きます
- 19. Androidアプリケーションからの投稿
- 20. Android MyView(FingerPaintデモ)キャンバスをリセット
- 21. MVPアプリケーションのWPFアプリケーションでリフレッシュとリセットを処理する方法
- 22. Android:アンドロイドのアプリケーションから他のアプリケーションのアクティビティを呼び出す
- 23. コンソールからデバイスのAndroidアプリケーションをデバッグ
- 24. iphone/androidアプリケーションからRefererを取得
- 25. Androidアプリケーションから電子メールを送信
- 26. servletからAndroidアプリケーションにarraylistを送信
- 27. Androidアプリケーションから 'requests' Facebookダイアログを使用
- 28. プロパティグリッドからのプロパティのリセット
- 29. Androidでプログラムをランチャーからアプリケーションを削除する
- 30. Android - FlipView自体がリセットされる
私はこれを最新のAPIで動作させようとしていますが、私は "getScopes()"と苦労しています。誰が私にこれを見つけるのか教えてもらえますか?それとも、何を返すべきか?ありがとう。 –
@Will Calderwoodこの方法はまだ動作しますが、GoogleはGamesClient APIを変更しました。電子メールの場合は "[email protected]"を使用し、範囲(nospace)の場合は "otth2:h ttps://www.googleapis.com/auth/games" – Gak2