본문 바로가기

안드로이드36

안드로이드 10 버전 (targetSdkVersion: 29) 타겟팅 안드로이드 11 버전이 베타 런칭을 진행하면서, 구글의 안드로이드 업데이트 버전 정책 또한 상향 조정되었다. - 2020년 8월 3일 : 새로운 앱은 Android 10(API 29) 이상을 타겟팅 - 2020년 11월 2일 : 모든 앱 업데이트는 Android 10(API 29) 이상을 타겟팅 GCMNetworkManager : - 2020년 4월 : FirebaseJobDispatcher 라이브러리 보관처리 및 지원 중단 예정 - 2020년 11월 : GCMNetworkManager 라이브러리 더 이상 업데이트 및 지원 중단 예정 ▶ 사용자 저장소 접근권한 허용되더라도, 외부 파일 접근 불가능 (방법1 : 접근하기 위해서는 해당 파일이 앱이 설치된 폴더로 복사해서 가져와야 함. 방법2 : Androi.. 2020. 7. 31.
[SSL] Retrofit2 HTTPS 통신과 TLS 1.0 / 1.1 서비스 제한 조치 사내 Android 프로젝트로 Retrofit2를 이용하여 API 통신을 구현하였다. HTTPS 도메인에서도 정상적으로 통신이 이루어져서 결과값을 도출해내고 있었다. 그런데, HTTPS(443) API에서 'SSL HandShake Error'가 발생하면서 오류가 발생했다. 왜 그 동안 정상적으로 네트워크 통신을 하던 게 갑자기 이러는 걸까? 우선, 에러 메시지에서 말하는 SSL에 대해서 알아야 한다. SSL이란? SSL(Secure Sockets Layer)은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는 데 사용된다. 주로 전송계층과 응용계층 사이에서 보안조치를 하는데 사용하게 된다. 우리들이 많이 접하게 되는 HTTPS://는 SSL을 사용하.. 2020. 7. 14.
안드로이드 다크모드 적용기 다크모드는 Android 10 (API 레벨 29) 이상에서 제공됩니다. * 다크모드의 장점 전력 사용량을 상당히 절약할 수 있습니다(기기 화면 기술에 따라 다름). 시력이 낮은 사용자와 밝은 빛에 민감한 사용자를 위한 가시성을 개선합니다. 누구나 어두운 환경에서 쉽게 기기를 사용할 수 있습니다. 기존의 안드로이드 프로젝트에 다크모드를 적용하기 위해서는 우선 2가지 준비가 필요합니다. 첫째, values-night 폴더를 생성하여 내부에 values/color.xml 파일을 복사하여 붙여넣기. (일반모드 / 다크모드 : values / values-night) values-night/color.xml 에 정의한 ~ 태그 속성은 다크모드일 때 사용하려는 색상값을 지정해주면 됩니다. 왼쪽(일반) : valu.. 2020. 7. 9.
[구글 애드몹] 광고 게재 제한 메일통보 받다.. 얼마 전부터 마켓에 게시한 애드몹 광고가 정상적으로 동작하지 않았다. 발생원인을 구글링도 하고, 애드몹 관리자 페이지 여기저기 눌러보고 분석해 보았다. 전날, 애드몹 광고 에러코드를 확인하고 나서 그동안 찾아본 정보를 글로 남겼다. # 구글 에러코드3 관련 내용이 궁금하시다면 아래 링크를 참고 [애드몹 광고 에러] 에러코드 3 (ERROR_CODE_NO_FILL : 무효 트래픽) 회사 출근해서 업무를 보던 중에, adMob Google 메일이 왔다. 메일 내용은 '광고 게재 제한'!! 어제까지만 해도 아직은 공식적으로는 '광고 제한 조치'를 받은 게 아니니 우선 기다려보자는 마음이었다. 메일 내용을 차분하게 읽어보니 역시나 '무효 트래픽 감지'건으로 구글 시스템에서 걸렸다. 나도 어느 정도는 예상하고 있.. 2020. 7. 4.
[구글 콘솔] 내부 앱 공유 (정식 업데이트 전, 필수코스!) 앱 개발자라면 테스트의 중요성에 대해 공감할 것이다. 안드로이드 플랫폼은 다양한 기기가 존재하여 특정 기기에서만 발생하는 문제가 종종 확인되기도 한다. 그래서 정식 업데이트 전, 내부 직원들을 대상으로만 테스트를 진행하여 버그를 최소화하고 싶을 것이다. 이럴 때, [구글 콘솔 > 내부 앱 공유]을 활용하여 특정 사용자에게만 제한적으로 배포 가능하다. 1. 구글 콘솔 페이지 접근하여, 왼쪽 메뉴 [개발도구 > 내부 앱 공유] 클릭 2. 내부 앱 공유 페이지 내 '테스트 참여 대상 관리' 탭을 선택하여, 테스트 참여 대상을 추가한다. 3. 업로더 관리 탭으로 이동하여, 업로드 링크(http://play.google.com/apps/publish/internalappsharing) 클릭 4. 업로드 관리페이지.. 2020. 7. 3.
[애드몹 광고 에러] 에러코드 3 (ERROR_CODE_NO_FILL : 무효 트레픽) 공모전에 출품했던 앱이 마켓에 등록될 때, 애드몹을 추가하여 심사를 거쳤었다. 그런데, 어느 순간부터 갑자기 광고가 나타나지 않았다. 애드몹 테스트 ID 값으로 시도했을 때는 정상적으로 보여짐을 확인했었는데, 마켓 버전에서는 왜 나오지 않는 것일까? * 오류 출처확인 애드몹 광고 이벤트 리스너를 이용해서 오류코드 값을 확인해보았다. 그 결과 에러코드 3 (ERROR_CODE_NO_FILL)이 발생 * ERROR_CODE_NO_FILL : 광고 요청에는 성공했지만, 광고 인벤토리가 부족하여 광고가 반환되지 않았다는 의미입니다. * 광고가 나오지 않은 이유 구글 플레이 스토어에 앱을 최초 등록했을 때는 '광고가 정상적으로 표현'되었다. 그 당시, 광고수익이 애드몹에 바로 반영이 되는지 확인하고자 테스트로 광.. 2020. 7. 3.
[카카오API] 마켓 앱버전에서 지도가 표시되지 않는 현상 해결! 개인 프로젝트에서 카카오 Map API를 이용하여 지도를 표시하는 기능이 있었다. 분명히 안드로이드 스튜디오 상에서 Debug모드와 Release모드에서는 지도가 정상적으로 표시되었는데 실제로 마켓 앱 서비스에서는 아래와 같이 지도 화면이 회색으로 정상 동작을 안 하는 것이다. 카카오 Develper 사이트에 접속해서 혹시나 API Key 값이 틀렸는지 확인해보았으나, 정확히 일치해서 원인을 찾고자 Q&A 사이트에서 열심히 나와 비슷한 문제를 겪고 있는 사람은 없는지 확인해보았다. 다행히도 비슷한 고민을 하는 사람이 있었다. 위 글은 결론은 keyHash 값이 카카오 API 상에 등록한 값과 일치하지 않아서 생겨나는 문제점이라는 것이다. 자 여기서 KeyHash 가 무엇이길래 이렇게 날 힘들게 하는것인가.. 2020. 6. 28.
[알뜰Tip] 안드로이드 스튜디오 캡쳐 기능 현업의 개발자라면 회의나 협업과정에서 내가 현재보고 있는 화면을 캡쳐해서 업무채팅방에 올려서 팀원들과 함께 화면을 공유하면서 회의를 진행한다. 기존에는 휴대폰 캡쳐기능을 이용하여 캡쳐한 후, 카카오톡이나 디바이스를 연결하여 DCIM > ScreenShot 폴더를 찾아가서 복사하는 번거로운 작업을 매번해야 했었다. 하지만, Android Studio의 Capture기능을 이용하면 디바이스에 금방 캡쳐한 이미지를 바로 확인할 수 있다. 아래는 Android Developer 사이트에 게시된 사용방법이다. 연결된 기기나 에뮬레이터에서 앱을 실행합니다. 기기를 연결해서 사용하고 있는 경우 USB 디버깅을 사용 설정했는지 확인하세요. Android 스튜디오에서 View > Tool Windows > Logcat을.. 2020. 6. 25.
네이버 클라우드 플랫폼 사용 후기 (지도 Map API) 최근 개인 프로젝트를 진행하면서 공공데이터를 활용하여 좌표값이 해당되는 위치를 표현해주는 기능이 필요했었다. 지도 Map API를 제공해주는 회사는 대표적으로 구글맵, 네이버, 카카오(다음)가 있다. 그중에서 네이버 API를 활용하여 모바일에서 지도 화면을 표현하고자 한다. 기존에는 아래 그림처럼 Map API V3 버전으로 서비스되고 있었다. 하지만, 2020년도부터 네이버클라우드 플랫폼 서비스로 관련 API를 모두 통합하는 형태로 사이트가 개편되었다. 우선 최초 이용자들은 회원가입부터 진행한 이후에 API 신청 및 서비스 이용이 가능하다. 회원가입 이후에는 "결제수단" 등록 안내 팝업창이 공격적으로 발생한다. 이는 정상적인 API를 이용하기 위한 필수 절차이니 사용하는 신용카드를 결제수단으로 등록하여.. 2020. 6. 17.