본문 바로가기

안드로이드

(166)
Webview내 window.open 대응하기 ( 새창 열기 에러 ) 웹뷰 연동시 새창을 여는 버튼이 작동하지 않아 웹 소스를 확인해보니 window.open으로 되어 있었습니다. 확인 해보니 WebChromeClient()의 onCreateWindow 메소드를 오버라이드해서 처리해야 합니다. var dialog: Dialog? = null webChromeClient = object : WebChromeClient() { override fun onCloseWindow(window: WebView?) { super.onCloseWindow(window) dialog?.dismiss() windowWebview?.destroy() window?.destroy() } override fun onCreateWindow( view: WebView?, isDialog: Boole..
Webview 이미지 업로드 구현하기 ( 카메라, 갤러리 ) 웹뷰가 아닌 네이티브만 작업하시는 분들은 제 블로그에 다른 포스팅을 참고해주세요 ! ( 그리고 해당 포스팅은 minsdk 21, Kotlin 기준으로 작업됐습니다. ) [안드로이드/코틀린] 카메라와 갤러리에서 이미지 가져오기 해당 포스팅은 제 블로그 조회수에 상당수를 기록했습니다. 그만큼 앱을 개발하는데 있어 이미지는 필수사항이라고 해도 과언이 아닙니다. 많이 부족함에도 불구하고 찾아주셔서 감사합니다. superwony.tistory.com | AndroidManifest.xml 권한 설정 카메라 파일을 읽고 쓰기 위해 3가지 권한을 사용합니다. 카메라로 찍은 사진을 onActivityResult로 바로 가져오지 않고, 빈 파일을 생성해서 카메라로 찍은 사진을 저장하기 때문에 저장소 권한이 필요 합니다...
[And] FCM (Firebase Cloud Messaging) 구현및 테스트 FCM은 앱의 업데이트와 같은 중요 정보를 전달하거나 마케팅 정보를 전달할때 유용합니다. 그리고 무료라는 점이 매력 있는 서비스 입니다. FCM으로 전달받은 메세지를 꾸미는 방법은 제 포스팅을 참고해주세요 [안드로이드/Android] 푸시(push) 종류별 구현 방법 및 오레오 대응 푸시는 사용자에게 정보(광고)를 전달하기 위해 앱 외부의 표시하는 UI입니다. 간단한 텍스트 형태부터 큰 이미지, 큰 텍스트 형태로 표시할 수 있습니다. 기본 알림 예제 var title = "알림 타이틀" superwony.tistory.com | Firebase 앱 추가 Firebase 콘솔에 프로젝트가 없다면 생성하시고, 생성된 프로젝트에 안드로이드 앱을 추가해 정보를 입력합니다. ( 생성된 프로젝트 > 프로젝트 설정 ..
[And] 백그라운드 위치 권한 사용하기 ( Android9,10 대응 ) ※백그라운드 위치정보는 TargetSdk가 아닌 앱이 깔린 디바이스의 소프트웨어 버전에 따라 동작이 다릅니다. 앱이 백그라운드에 있을때도 디바이스의 위치 정보를 사용하기 위해선 별도 권한을 추가해야 하며 이 포스팅은 Android9이상 부터 추가된 'ACCESS_BACKGROUND_LOCATION' 권한을 중점으로 작성됐습니다. 공식 문서를 참고하여 작성했습니다. Android9 이하 별도 권한 없이 위치 권한만 있으면 사용은 가능합니다. 하지만 오레오 버전부터 백그라운드 서비스를 일부 제한하면서 ( 시간당 호출수 제한 ) 백그라운드에서 위치 정보를 얻어 앱에 활용하는건 어려워졌습니다. 백그라운드 서비스가 오래 지속되지 않기 때문에 단발성 기능이 아닌 이상 사용 불가라고 보는게 맞을것 같습니다. Andr..
[And] 달력 만들기 - recyclerview 활용 달력을 5번정도 구현했는데, 그때마다 '어떻게 하면 조금 더 효율적일까'를 고민했고 최근에 식물일기에 달력 기능을 추가할때도 고민했습니다. 혹시 다음에 또 구현하게 된다면 보다 빠른 의사결정을 위해 포스팅합니다. 본 포스팅은 달력을 구현하는데 있어서 방향성을 잡는데 도움이 되도록 작성했습니다. ( Gridelayout으로 만든 시간표 포스팅도 구경하고 가세요 ! ) | 달력 레이아웃 구현 달력에는 매번 스와이프 기능을 넣었기 때문에 viewpager는 기본으로 하고, 세부 UI 구현은 크게 3가지로 나눠볼 수 있습니다. 1. Recyclerview로 만듬 2. textview로 하나씩 모두 그림 2-1. customView로 만들어서 사용 ( 또는 달력 전용 fragment ) 2-2. 구현하는 엑티비티..
[And] Drawable 과 Mipmap 폴더 활용하기 이미 익숙하게 사용하는 사람들도 있겠지만 저도 처음엔 많이 두 폴더의 사용이 헷갈려 잘못 사용하고 있었습니다. 오늘 포스팅에서는 정의와 제가 사용하고 있는 방법을 공유하고자 합니다. Mipmap 프로젝트를 생성하면 같은 이름의 폴더가 밀도별로 5개가 생성됩니다. 생성된 폴더엔 'ic_launcher' 라는 이미지가 각각 들어가 있는데 클릭해보면 크기가 조금씩 다릅니다. 해상도에 관한 자세한 내용은 추가 검색을 통해 어떤 차이가 있는지 찾아보셔서 어느정도 개념을 익혀야 합니다. 구글에서도 mipmap 폴더는 아이콘 이미지를 보관하는 용도로 정의하고 있으며 각 해상도는 디바이스에서 사용하는 런처마다 다르게 대응됩니다. 디바이스 한줄에 3개의 아이콘을 노출하는 런처를 사용한다면 조금 더 큰 해상도의 이미지를 ..
[And]출시 예약으로 배포 시점 조정하기! apk파일을 업로드하면 구글에서 승인을 해야 사용자들이 스토어를 통해 다운로드 받을 수 있습니다. 근데 승인 시점을 정확하게 알수 없고 앱마다 소요되는 시간도 다르고 첫출시냐 업데이트냐에 따라 다릅니다. ( 공식 문서는 확인하지 못했지만 여러 경험담들을 종합해봤을 경우에 해당 ) 만약 앱 업데이트 권고 푸시를 발송한다면 출시시점을 정확하게 알아야 합니다. 그럴때 구글 콘솔에서 제공하는 '게시개요' 기능을 이용하면 원하는 시점에 앱을 배포할 수 있습니다. >> 게시개요 개발자 콘솔에서 앱을 선택하여 대시보드로 진입하면 좌측 메뉴에 '개시개요' 를 찾을 수 있습니다. >> 설정 'on' 친숙하지 않은 단어들이 사용돼 조금 혼란스럽지만 '관리형 게시 상태' 에 관리를 클릭하셔서 기본 off로 되어 있는걸 on..
[Android] 외국인 대상 광고 플랫폼 - MoPub 배너 다국어 출시하면서 외국 사용자들에게 적합한 광고 sdk를 찾다가 추가하게 됐습니다. 효율에대한 내용은 추후에 올리도록 하겠습니다. 그리고 모펍은 minSdk 19 이상인 앱에만 추가할 수 있으니 참고해주세요. >> 앱 추가 먼저 모펍 광고를 추가하려면 구글스토어에 출시된 상태여야 합니다. 공식 사이트에서 회원가입 후 진행해주세요, 회원 가입 이후 상단 우측에 'New APP' 버튼을 클릭하세요 마켓에 출시되어 있는 앱의 주소를 적으세요 광고 유닛 추가 저는 포맷으로 배너를 선택했습니다. 그리고 이름외 다른 옵션들은 디폴트 값으로 두었습니다. 생성 후 unit id값등 정보들이 나오는데 아래 문구 중 'MoPub Integration suite' > 'ASSISTANT' 를 클릭 해, 적용할 광고 옵션들을..