[android] Google play service를 이용해서 점수 공유, 업적 달성 추가하기

외부 라이브러리 가져오기
1. SDK Manager에서 Google Play Service를 설치한다.
스크린샷_2013-08-26_오후_5.19.29

2. 이클립스에서 {sdk}/extras/google/google_play_services/libproject/google-play-services_lib 를 import 한다.

 

 

3. 내가 만든 프로젝트 – properties – Android – Library – Add… – google-play-services_lib 선택 – ok

스크린샷_2013-08-26_오후_5.24.20

 

4.
https://github.com/playgameservices/android-samples – Download Zip – 압축 풀고 libraries/BaseGameUtils/src/com/google/example/games/basegameutils 의 BaseGameActivity.java와 GameHelper.java를 내가 만든 프로젝트로 가져온다. (가져오고 나서 package path 수정하기)
– libraries/BaseGameUtils/res/values/gamehelper_strings.xml 을 내 프로젝트/res/strings 폴더로 복사한다.

 

 

Google Developer Console
5. https://play.google.com/apps/publish – 게임 서비스 – 새 게임 추가

스크린샷_2013-08-26_오후_5.49.42

 

 

6. 앱 연결하기

패키지 이름에는 내가 만든 앱의 패키지 경로를 넣어준다.

스크린샷_2013-08-26_오후_5.51.00

 

지금 앱 승인을 누른다.

스크린샷_2013-08-26_오후_5.51.47

 

 

이런 창이 뜨는데, Continue를 누른다.

스크린샷_2013-08-26_오후_5.51.58

 

이클립스에서 Manifest – Use the Export Wizard를 이용해서 SHA1 값을 복사해온다.

스크린샷_2013-08-26_오후_5.52.22

 

 

복사한 SHA1값을 붙여넣는다.

스크린샷_2013-08-26_오후_5.52.42

 

정상적으로 승인이 됐으면 아무 오류 없이 이 화면이 뜬다.
오류가 있다면 api console에서 같은 패키지 경로를 사용하는 앱이 이미 있어서 일 가능성이 높다.

스크린샷_2013-08-26_오후_5.52.56

 

이렇게 정상적으로 목록에 나타난다.
여러 앱에서 하나의 게임서비스를 연결해도 괜찮다.

스크린샷_2013-08-26_오후_5.54.23

 

Google api console에도 이렇게 자동적으로 앱이 등록된다.

스크린샷_2013-08-26_오후_5.55.06

 

 

7. 업적 생성

한 번만 달성하면 되는 업적(설명이 너무 길면 잘리더라)

스크린샷_2013-08-26_오후_6.02.15

여러 번 달성해야 하는 업적(같은 업적을 여러 번 달성해야 할 때)

스크린샷_2013-08-26_오후_6.02.47

 

잘 만들어졌다.

스크린샷_2013-08-26_오후_6.04.15

 

 

8. 리더보드 생성

최고 점수 공유용

스크린샷_2013-08-26_오후_6.05.37

 

가장 빨리 끝낸 시간 공유용(코드에서 업로드할 때 단위는 millisecond로 해야한다)

스크린샷_2013-08-26_오후_6.06.14

 

코드 수정
9. 업적이나 리더보드 목록 아래의 ‘리소스 받기’를 클릭하면 ID들이 나오는데, strings.xml에 추가한다.

 

10. Manifest의 application 안에 아래의 코드를 추가한다.

 

11. play service 를 사용할 activity를 BaseGameActivity를 상속하게 한다. (onSignInFailed(), onSignInSucceeded()가 추가된다)

12. 화면에 Sing In Button을 추가한다.

 

13. 지원하는 함수들

 

주의사항
14. 로그인 테스트를 하기위해서는 apk로 만들어야 하며, 앱을 마켓에 개시하지 않았다면 Developer Console에서 테스트 계정을 추가해야 한다.
apk로 만들지 않았거나, 테스트 계정을 추가하지 않으면 이런 에러가 뜬다.

device-2013-08-26-184158

 

Developer Console에서 테스트 계정을 추가한다.

스크린샷_2013-08-26_오후_6.51.06

 

 

15. 애플리케이션을 게시로 바꾼 후, 게임서비스에서도 게시로 바꿔줘야한다. 안그러면 실 사용자들이 로그인이 되지 않는다.

 

 

작동 확인

device-2013-08-26-190702

 

device-2013-08-26-190713

 

device-2013-08-26-190725

 

device-2013-08-26-191345

device-2013-08-26-191636

device-2013-08-26-191024

device-2013-08-26-191414

TestGameCenter.zip