본문 바로가기

Kotlin

[Android/통화 화면 바꾸기] 2. 기본 전화 앱 등록하기 앞선 포스팅에서 통화 화면을 바꾸기 위해서는 두 가지의 조건이 필요하다고 했다. 1. 앱이 기본 전화 앱으로 등록되어야 함 2. InCallService가 구현되어 있어야 함 이번 포스팅은 앱을 기본 전화 앱으로 바꾸는 과정에 대해 작성해보려 한다. 기본 전화 앱이 되기 위한 조건 단순히 기본 앱 전환 인텐트를 날린다고 팝업이 뜨지는 않는다. 기본 앱의 종류에 따라 필요한 조건이 다른데 기본 전화 앱에서는 두 가지 intent filter를 manifest에 구현해야 한다. 1. action : dial, catergory : default 2. action : dial, catergory : default, scheme : "tel" //example Intent(Intent.ACTION_DIAL).l.. 더보기
[Android/Kotlin] Checkbox 전체 선택 구현(Implements Multi-Level Checkbox for check all) 회원 가입 창을 만들 때면 봉착하는 난감한 상황이 있다. 주로 약관 동의에 들어가는 전체 선택 기능... 참 별거 아닌데 가볍게 로직을 짜 보면 원하는 대로 기능이 동작하지 않거나 리스너 콜백이 서로 물려서 무한루프에 빠지거나.. 암튼 대체 왜 이게 기본 기능으로 구현이 안 되어 있을까 싶고, MaterialDesign 페이지를 봐도 전체 선택 기능에 애매한 상태(indeterminate state)를 나타내는 것도 있지만, Implementation탭 에는 눈을 씻고 찾아봐도 해당 기능을 구현할 수 있는 속성은 없다. 구글링을 해봐도 간단하고 유연하게(여러 단계의 적용 등) 써먹을 수 있는 코드는 안 보여서, 만들어 놓으면 필요할 때마다 써먹을 수 있을 것 같아 최대한 간단하게 사용할 수 있도록 구상을.. 더보기
[Android/kotlin] 전화번호로 주소록 이름 가져오기Get contact display name by phone number 작성 기준 sdk 31 Notice 이 포스팅은 검색 기능의 구현에는 적합하지 않습니다. 단순히 전화번호로 주소록에 등록된 이름을 가져오는 내용입니다. ex) search "0101234" result "01012345678", "01012341234"... >> X 전화 관련 서비스를 만들기 위해 기술조사를 하며 예제를 만들어 보다가 전화번호는 받아도 주소록에 등록된 이름은 받아오지 못하여 따로 기능을 만들기 위해 찾아봄 Reference) 연락처 정보 가져오기 공식 문서 위 문서에는 예제로 주소록에 등록된 이름(Contact Display Name)을 기준으로 검색하여 보여주고, 링크된 하단에 Column 상관없이 검색할 수 있는 내용이 있어 사용함 권한 Runtime Permission이므로 실행.. 더보기