개발/Android (JAVA)

[안드로이드 스튜디오] 구글 리더보드 랭킹 업적 구현

Printemp 2021. 11. 9.

https://amanteattirance.tistory.com/74

 

처음으로 만들어본 게임을 플레이스토어에 출시했습니다!

https://play.google.com/store/apps/details?id=com.amanteattirance.pingtest 대학 커리큘럼을 따라 파이썬과 C언어를 배우던 중 학습한 프로그래밍을 실제로 응용해 보고 싶다는 생각이 들었다. C언어로는 할..

amanteattirance.tistory.com

구글 리더보드와 업적을 구현하는 방법을 알아보도록 하겠습니다.

구글 로그인은 당연히 먼저 되어있어야 합니다.

https://amanteattirance.tistory.com/70

 

[안드로이드 스튜디오] 구글 로그인 연동

먼저 파이어베이스에 sha키를 이용하여 계정을 등록하고, SDK들을 등록해야합니다. 이 과정들 이후 부터 시작합니다. 자동로그인 코드입니다. private void signInSilently() { GoogleSignInOptions signInOptions..

amanteattirance.tistory.com

먼저 구글 플레이 콘솔에 가입하여 리더보드와 업적 내용을 생성해줍니다.

그 후 리소스를 복사합니다.

이제부터가 중요한데,

복사해온 리소스를 

values 폴더에 ids.xml 파일을 생성하여 그곳에 붙여줍니다.

 

 

 

리더보드를 불러와 실행하는 함수 rank 입니다.

버튼의 onclick 속성에 rank를 입력하여 버튼을 눌렀을 때 실행되도록 하면 됩니다.

public class MainActivity extends AppCompatActivity {
    private static final int RC_LEADERBOARD_UI = 9004;

    public void rank(View v) {
        Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
                .getLeaderboardIntent(getString(R.string.leaderboard_id))
                .addOnSuccessListener(new OnSuccessListener<Intent>() {
                    @Override
                    public void onSuccess(Intent intent) {
                        startActivityForResult(intent, RC_LEADERBOARD_UI);
                    }
                });
    }

점수가 최고기록을 갱신했을 경우 리더보드에 새롭게 올리는 코드입니다.

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

1337에 점수 변수를 넣어주시면 됩니다.

댓글

💲 추천 글