이 영역을 누르면 첫 페이지로 이동
CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

페이지 맨 위로 올라가기

CodeJUN

심심해서 하는 블로그

Google Play Service Check(확인)하기

  • 2018.07.25 20:30
  • Android

Firebase나 GoogleMAP 등 개발 시 수많은 구글의API들을 사용합니다. 이때 대부분 Google Service API를 사용하게 되는데요, 이놈에게 문제가 생기면 전반적인 앱 구동에 많은 문제가 생기기 때문에 꼭 기기에서 Google Play Service 버전, 존재여부 등을 확인해 준 후 조치를 취해야 합니다.


기본으로 제공하는 메소드 사용하기

구글에서는 기본적으로 메소드를 제공하고 그에따른 결과를 확인할 수 있는 메소드도 제공하고 있습니다. 바로 GoogleApiAvailabilityLight 라는 놈입니다.
private void isGooglePlayServicesAvailable() {
GoogleApiAvailabilityLight googleApiAvailability = GoogleApiAvailabilityLight.getInstance();
int status = googleApiAvailability.isGooglePlayServicesAvailable(this);
if (status != ConnectionResult.SUCCESS) {
if (googleApiAvailability.isUserResolvableError(status)) {
Log.e("Google Play Service", String.valueOf(status));
}
Log.e("Google Play Service", "GOOGLE PLAY SERVICE ERROR, STATUS: " + status);
}
}

위 소스로 바로 구분할 수 있습니다.

isGoogleServicesAvailable을 호출하게 되면 기기의 상태에 따라 int값을 반환해 주게 됩니다. 이때 ConnectionResult를 통해 결과값을 확인할 수 있습니다.

위와같이 수많은 결과값들이 나오게 됩니다. 저는 SUCCESS가 아닌 이상 일단 다 오류로 봤는데요, 여기서 따로 구분을 해 주셔서 예외처리 해 주시면 됩니다. 그 중에서도 중요한 예외처리들이 있습니다.


  • SUCCESS: Google Play Service(이하 GPS)가 정상 설치 상태
  • SERVICE_MISSING: GPS가 없는 상태
  • SERVICE_UPDATING: GPS가 업데이트 중
  • SERVICE_VERSION_REQUIRED: GPS버전이 오래되어 업데이트가 필요한 상태
  • SERVICE_DISABLED: GPS가 비활성화 된 상태
  • SERVICE_INVALID: GPS가 인증되지 않은 상태
출처는 여기를 클릭해 주세요.


위와 같은 상태들이 뜬다면, 따로 구분해 주셔서 Play service 설치 화면으로 넘어가게끔 할 수 있습니다.


Google Play Service 설치 페이지로 이동하기

만약 저기서 예외상태에 도달했다면, google play service를 사용자가 설치할 수 있도록 도와줍시다.
private void installPlayService() {
Intent intent = new Intent(Intent.ACTION_VIEW //
, Uri.parse("market://details?id=" + GoogleApiAvailabilityLight.GOOGLE_PLAY_SERVICES_PACKAGE));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.setPackage("com.android.vending");
startActivity(intent);
}

Google Service를 설치할 수 있는 PlayStore로 이동하는 소스입니다. 이를 활용하여 예외상태에 있을 때 메소드 호출을 시켜주면 됩니다.

switch (status) {
case ConnectionResult.SERVICE_MISSING:
installPlayService();
break;
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
installPlayService();
break;
case ConnectionResult.SERVICE_DISABLED:
Toast.makeText(this, "GooglePlayService를 활성화 해 주십시오.", Toast.LENGTH_SHORT).show();
finish();
break;
case ConnectionResult.SERVICE_INVALID:
Toast.makeText(this, "GooglePlayService 인증에 실패하였습니다.", Toast.LENGTH_SHORT).show();
finish();
break;
}




혹시라도 더 좋은 방법이 있다면 공유 부탁드리며, 질문은 댓글로 받도록 하겠습니다.

저작자표시 비영리 동일조건 (새창열림)

'Android' 카테고리의 다른 글

'Android resource compilation failed' 에러 해결  (4) 2018.09.30
18:9 이상 화면비 지원하기  (4) 2018.08.02
인터넷 연결 상태 확인하기  (0) 2018.07.23
BottomNavigationView 애니메이션 제거하기  (0) 2018.07.22
Magellan(마젤란) 사용하기  (0) 2018.07.19

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 'Android resource compilation failed' 에러 해결

    'Android resource compilation failed' 에러 해결

    2018.09.30
  • 18:9 이상 화면비 지원하기

    18:9 이상 화면비 지원하기

    2018.08.02
  • 인터넷 연결 상태 확인하기

    인터넷 연결 상태 확인하기

    2018.07.23
  • BottomNavigationView 애니메이션 제거하기

    BottomNavigationView 애니메이션 제거하기

    2018.07.22
다른 글 더 둘러보기

정보

CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

  • CodeJUN의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 방명록

카테고리

  • 분류 전체보기 (54)
    • Android (38)
    • BlockChain (4)
    • React Native (4)
    • 아두이노 (2)
    • 프로젝트 (6)

공지사항

  • 공지 - 블로그를 시작하며

태그

  • arduino
  • C
  • Android
  • 강좌
  • c++
  • 아두이노
  • Firebase
  • 안드로이드

나의 외부 링크

  • Github

정보

CODE_JUN의 CodeJUN

CodeJUN

CODE_JUN

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © CODE_JUN. Designed by Fraccino.

티스토리툴바