Tôi có thể đặt lại kết quả thành tích/bảng thành tích của mình từ ứng dụng Android được sử dụng với Dịch vụ trò chơi của Google Play không?Đặt lại thành tích/bảng thành tích từ ứng dụng Android của tôi
8
A
Trả lời
15
Có, điều này có thể thực hiện được từ các tài khoản thử nghiệm. Đó là một chút khó khăn vì vậy ở đây một số mã ví dụ.
Thêm này trong biểu hiện của bạn:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
Và đây là mã thực tế được thực hiện trong ứng dụng. Đã thêm vào hoạt động dựa trên 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
Có một cách khác để bạn có thể đạt được điều này. Chuyển đến (các) bảng dẫn đầu của bạn trong khu vực dịch vụ trò chơi của trang web dành cho nhà phát triển. Sau đó chọn một trong các bảng thành tích của bạn. Thay đổi tùy chọn Đặt hàng 'Lớn hơn là tốt hơn' thành 'Nhỏ hơn là tốt hơn' hoặc ngược lại. Lưu sau đó đi thay đổi nó trở lại.
Thao tác này sẽ xóa mọi giá trị bạn hiện có cho bảng thành tích đó và tất nhiên chỉ có thể thực hiện được trong khi thử nghiệm.
Các vấn đề liên quan
- 1. Chia ứng dụng Android thành hai phần
- 2. Cách hiển thị cài đặt cho văn bản thành lời nói trong ứng dụng của tôi?
- 3. Cách đặt nền của Android PopupMenu thành Trắng
- 4. Android: Cách đặt lại FirstRun SharedPreferences khi ứng dụng của tôi được cập nhật?
- 5. cài đặt lại android không thành công sau khi tắt hoạt động của trình khởi chạy
- 6. Cách sử dụng whatsapp từ ứng dụng Android của tôi?
- 7. Cách tích hợp tập lệnh Python trong Ứng dụng Android của tôi (như SL4A)
- 8. Có cách nào để đặt lại tiến trình Thành tích cho tài khoản sandbox GameCenter của tôi không?
- 9. Gửi MMS từ Ứng dụng của tôi trong android
- 10. Đặt bitmap Android thành Imageview
- 11. Android: Gọi lại với thành phần WebView?
- 12. Cài đặt mục menu ứng dụng Mac OSX Menu thành khác với "Python" trong ứng dụng Qt trăn của tôi
- 13. Đặt âm lượng của ứng dụng android
- 14. NSCursor luôn đặt lại thành Arrow
- 15. Cách nhận thời gian cài đặt ứng dụng từ android
- 16. Làm cách nào tôi có thể đặt adjustViewBounds thành chương trình thành true trong Android?
- 17. Tích hợp ứng dụng web RESTful của tôi với các cài đặt SAP của khách hàng
- 18. Cách đặt lại màu nền của nút thành mặc định?
- 19. Làm cách nào để đặt lại con trỏ của tôi thành vị trí mảng cụ thể?
- 20. Android - nhận chiều rộng của nút được đặt thành wrap_content
- 21. android: làm cách nào để mở ứng dụng khác từ ứng dụng của tôi?
- 22. Đặt lại IntelliJ UI thành Mặc định
- 23. Làm cách nào để biết ứng dụng Android của tôi đã được nâng cấp để đặt lại báo thức?
- 24. Cài đặt Xamarin Android không thành công
- 25. Làm cách nào để mở ứng dụng Cài đặt từ ứng dụng của tôi?
- 26. Có thể sử dụng API Điểm & Thành tích từ Facebook chỉ từ một ứng dụng di động gốc không?
- 27. Đặt loại JS MIME của tôi thành "văn bản/javascript"
- 28. Xcode: Làm thế nào để đặt ứng dụng thành iPhone?
- 29. javax. * Trong ứng dụng Android của tôi?
- 30. Chạy ứng dụng sau khi cài đặt thành công
Tôi đang cố gắng làm việc này với API mới nhất nhưng tôi đang đấu tranh với "getScopes()". Bất cứ ai có thể cho tôi biết nơi tôi tìm thấy điều này? Hoặc những gì nó nên trở về? Cảm ơn. –
@Will Calderwood Phương pháp này vẫn hoạt động, nhưng google đã thay đổi api GamesClient của họ. bạn có thể sử dụng "[email protected]" cho email và "oauth2: h ttps: //www.googleapis.com/auth/games" cho phạm vi (nospace) – Gak2