Android

    [Kotlin] InCallService로 Default Dialer 개발하기

    [Kotlin] InCallService로 Default Dialer 개발하기

    1. ConnectionService와 InCallService의 차이 InCallService 대부분의 스펙은 구현이 되어있으며, 구현된 항목을 선언하고 요청만 해주면 구현할 수 있다. ConnectionService는 VOIP개발에 더 적합하다. gsm통화를 개발하기 위해 각종 편의사항이 제공되는 InCallService와는 다르게, 연결을 직접 받아 등록하고 통화의 시작, 종료까지 모두 구현해주어야 한다. 그래서 VOIP구현엔 오픈소스 라이브러리를 주로 사용한다 (kakao talk도 보이스톡도 그렇다!) 2. InCallService 사용을 위한 사전 준비 기본 통화앱이 되도록 Manifest 및 userpermission 수정 ㄱ. Manifest - ues permission tags //OU..

    [Kotlin]ActivityForResult 및 checkSelfPerission 을 permissionLauncher로 대체하기

    [Kotlin]ActivityForResult 및 checkSelfPerission 을 permissionLauncher로 대체하기

    자주 사용하기 때문에 검색안하고 긁어 쓰려고 포스팅 합니다...! 순서 1. 설정창 여는 퍼미션 2. 설정창 필요없이 팝업으로 획득하는 퍼미션 1. 설정창을 열어야 하는 system alert window의 경우 var ovelayPermission = Settings.canDrawOverlays(this) val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:$packageName")) val activityLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { ovelayPermission = Setting..

    [Kotlin] Fragment (2) - 기초 예제

    [Kotlin] Fragment (2) - 기초 예제

    * 본 예제는 간단히 ViewBinding을 사용합니다 https://greensky0026.tistory.com/190 View binding 사용해보기 findbyviewid를 쓰지 않아도 되게 해줘서 코드가 매우 간결해집니다. app level gradle //build.gradle android{ //... viewBinding { enabled = true } } //... } replace Acitivity - onCreate : setContentView.. greensky0026.tistory.com 개요 본 예저는 간단히 fragment를 버튼을 클릭해 swap해 보여주는 Application 입니다. MainActivity는 main, another 버튼이 존재하며 클릭시 해당 frag..

    [Kotlin] Fragment (1) - Introduce

    [Kotlin] Fragment (1) - Introduce

    이번 포스팅 시리즈는 Fragment입니다. 쓸줄 아는것괘 왜 쓰는지 안는것은 천지차이라고들 하는데, 저는 쓸줄만 알았던거 같아 공부한것을 정리겸 포스팅을 작성해보게 되었습니다. Fragment (1) - Introduce 1. Fragment vs Activity 저는 Fragement에 대해 장황하게 설명하기보단, 비슷한 역할을 수행하는 Activity와의 비교가 더 이해해 도움이 되었기에, 서두로 간략히 서술해 보도록 하겠습니다. ㄱ. 독립성 Activity는 사용자와 앱이 상호작용 하는 진입점이여서 Application의 필수 요소이다. Fragment는 화면의 일부 또는 전체를 구성하는 객체이다. 그렇기에 Fragment는 스스로 독립적으로 존재할 수 없고 필수요소는 아니다. ㄴ. 퍼포먼스 Ac..

    [Kotlin] ContentResolver 기본 : 통화내역(Call log) 조회

    [Kotlin] ContentResolver 기본 : 통화내역(Call log) 조회

    1ContentResolver란? ContentProvider가 uri로 접근경로를 열어 제공하는 데이터들을 조회하는 Query입니다.쉽게 생각해서 content uri에 db가 존재하고, 그걸 조회하는 qeury를 작성해 contentResolver로 실행한다고 볼 수 있습니다. val resolver: ContentResolver = this.contentResolver val callLogUri = CallLog.Calls.CONTENT_URI var cursor: Cursor? try{ cursor = resolver.query(callLogUri, null, null, null, null) if (cursor != null) { var maxcount = 2 while (cursor.moveTo..

    Kotlin 이란?

    Kotlin 이란?

    코틀린이란? Kotlin은 2011년 7월 JetBrains이 발표한 프로그래밍 언어로, JVM에서 동작합니다. 주로 Android application 개발에 이용되며, 최근 빌드 내용을 보면 kotlin multiplatform으로 ios application도 개발할 수 있어 보입니다. 철학 실용성 다른 프로그래밍 언어에서 성공적으로 검증된 해법과 기능에 의존합니다. 특정 프로그래밍 패러다임이나 스타일을 강제하지 않습니다. 생상성 향상을 위해 '좋은 도구'를 강조합니다. 간결성 Getter, Setter와같이 번거로운 코드들은 묵시적으로 제공합니다. 길거나 반복되는 코드를 라이브러리 함수로 대체할 수 있습니다. 최소화와 간결성은 다르므로, 연산자 오버로딩은 지원하되 신규연산자는 정의하진 못합니다. ..

    margin과 padding 차이

    margin과 padding 차이

    *이전에 포스팅한 글을 옮겨왔습니다. padding은 해당 리소스의 범위 안에서 외각과 내용과의 거리를 벌리는 것이고, margin은 해당 리소스 범위 밖에서 다른 리소스와의 거리를 벌리는 것.

    Android의 4대 컴포넌트란?

    Android의 4대 컴포넌트란?

    * 과거 다른 블로그에 포스팅한 글을 옮겨왔습니다. 안드로이드의 4대 컴포넌트는 액티비티, 서비스, 브로드캐스트 리시버, 콘텐트 프로바이더이다. 1. 액티비티 : 스마트폰에 출력되는 화면을 관리하며, 사용자와의 상호작용에 따른 이벤트를 처리하는데 사용된다. 액티비티 | Android 개발자 | Android Developers An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a wi..

    [(가제)강습스케쥴러] application preview

    [(가제)강습스케쥴러] application preview

    서론 어머님께서 인라인 스케이트 강습을 하시며 수기로 회원관리가 너무 고단하다고, 제가 개발을 의뢰하셨습니다. ios쪽 진로를 희망하며 집중하고있는데, 어머님이 노트20인지라 어쩔수없이 안드로이드 개발을 하게 되겠네요. 기간은 넉넉히 5월까지로 잡고 개발을 시작합니다. 개요 어머님과 상의하 어머님 스타일에 맞춰 관리 어플리케이션을 설계하였습니다. 주요 기능은 간편한 수강생 등록 및 관리, 보기쉽게 여러 방법으로 데이터를 출력해주는 뷰 입니다. DB서버는 호스팅 서버로 쓰면 서버를 여는 시간이 불규칙해 서비스가 어렵다 판단, application 내부에서 SQLite를 사용합니다. 어머님의 스마트폰 단말기 분실 가능성을 고려해 지속적으로 데이터를 외부로 백업하는 방법을 고려중입니다. 화면구성 1. 첫 화면..