我可以使用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. 發佈Android應用程序與排行榜和成就沒有
- 2. 禁用android應用程序排行榜
- 3. iOS更新的應用程序版本 - 新的排行榜和成就
- 4. 在Android中實現排行榜和成就時出現錯誤
- 5. 任何教程如何使排行榜和成就在cocos2d
- 6. 如何在Android應用程序中實現排行榜?
- 7. 是否有合成成就/排行榜Intent
- 8. '我'在排行榜中的位置
- 9. 實現成就和排行榜的問題Unity,Android - 谷歌 - 玩 - 遊戲
- 10. 批量上傳/更新Google Play遊戲成就和排行榜
- 11. 如何在Game Center排行榜/成就中更改語言
- 12. Monotouch成就和排行榜視圖控制器
- 13. Google Play遊戲服務 - 測試排行榜/成就
- 14. OpenFeint成就和排行榜按鈕不會顯示(總是)
- 15. 如何實現與Facebook排行榜的iOS應用程序?
- 16. 發佈第二款遊戲服務後排行榜/成就重複
- 17. Android Google Play排行榜
- 18. 我可以使用相同的排行榜和谷歌玩遊戲中的成就的Android遊戲
- 19. 通過oauth playground爲Android應用程序重置Google遊戲服務成就?
- 20. 排行榜配置錯誤
- 21. 流星收藏 - 排行榜應用程序
- 22. 如何檢查應用程序是否在排行榜中
- 23. 成就/重置
- 24. Google Play排行榜排行榜應用在更改標題後不再排名?
- 25. 以任何方式編程重置排行榜?
- 26. 排序值 - 榜
- 27. Facebook排行榜
- 28. AndEngine遊戲中的排行榜集成
- 29. Google Play遊戲服務無法訪問排行榜「嘗試從應用程序y訪問應用程序x」
- 30. 使用Application Loader編輯和上傳Game Center成就和排行榜
我試圖讓這個工作與最新的API,但我努力與「getScopes()」。誰能告訴我我在哪裏找到這個?或者它應該返回什麼?謝謝。 –
@Will Calderwood這種方法仍然有效,但谷歌改變了他們的GamesClient api。您可以使用「[email protected]」電子郵件和「oauth2:h ttps://www.googleapis.com/auth/games」作爲範圍(nospace) – Gak2