Android

    Android :: RoomDatabase inital data(PrePopulating) 데이터베이스 초기 데이터 값 저장하기

    RoomDatabase가 처음 생성될때 초기 데이터 값을 넣는 방법이다. Room은 Callback을 제공하는데, 이때 Callback내에서 db가 처음 생성될때 불리는 `onCreate`를 사용하는 것이다. (여기서 onCreate는 모든 테이블이 생성된 뒤에 불린다고 나와있다.) 구현 설명 1. Entity public class SomeEntity{ private String name; private Integer age; } SomeEntity가 있다고 가정하겠다. 2. DAO @Dao public interface SomeEntityDao { @Insert public void insert(SomeEntityDao); } Entity가 있으니, DAO도 있다고 가정해보자. 3. Execute p..

    Android :: Notification을 사용하여 간단한 알림을 만들기(예제포함)

    안드로이드의 Notification을 구현하려면, Notification Channel을 생성해야 합니다.(특정 조건에서만 구현) Android 버전 `O` 이상부터, Notification Channel 개념이 추가되었습니다. 따라서, `O`버전 이상에 대해서 Channel을 추가해 주어야 합니다. 1. activity_main.xml 수정 이번 에제에서는 버튼 클릭으로 동작되는 Notification을 살펴볼 것입니다. 2. Notification 생성 Intent 는 PendingIntent내에서 필요하기 때문이다. PendingIntent는 Notification.setContentIntent(...) 의 인수로 들어가게된다.(클릭시의 동작을 위해) Intent notificationIntent ..

    Android :: Toolbar 사용 방법과 메뉴 커스터마이징(three dots image color, 메뉴의 위치, 예제포함)

    1. ToolBar 설명 안드로이드는 기본적으로 상단에 ActionBar를 제공한다. ActionBar는 View가 아니기 때문에 Customizing에 어려움을 겪는다. 예를들면 어플의 왼쪽 위 부분에 텍스트 대신 로고를 넣고 싶을때 그렇다. ToolBar는 View이다. 그렇기 때문에 Customizing ActionBar에 비해 자유롭다. ToolBar는 Api 21 부터 지원되기 시작하였다. 우리는 ActionBar를 사용하지 않을것이기 때문에, 우선 ActionBar를 제거해 줄것입니다. 또한, 이후의 작업에 대한 약간의 응용을 위해 themes.xml(style.xml)의 수정이 필요하겠습니다. 2. themes.xml(style.xml) ... // 이때 중요한건 parent의 값중에 NoA..

    Android Debug :: 4.1ver 이후로 생기는 Plugin Error 를 해결하는 방법

    - 처음에는 신경을 쓰지 않았던 로그이지만, 매일같이 들어가던 작업 도구 이기에 어느 순간부터 신경이 쓰이기 시작했다. - 단순한 해결 방법으로는 삭제가 답이라고 생각 되어서, plugin에 들어가봤지만 어디에도 설치가 되어있지 않다고 쓰여있는 상태... (`ctrl + shift + s` => 안드로이드 settings) 필자가 선택한 방법은 해당 플러그인이 존재하는 폴더에 들어가서 직접 삭제해 주어야 했다. 1. `win + e`(파일탐색기) => `ctrl + L`(주소창 선택 윈도우 기준) => `%APPDATA%\Google\AndroidStudio4.1\plugins` 2. 오류가 나는것들에 대해서 삭제하여 준다.(참고로 필자는 해당 plugin을 사용하지 않은지 꽤 되었다.) 3. 더 이상 ..

    Android Debug :: 안드로이드 HTTP로 통신할때, 발생하는 문제 해결 방법

    - 안드로이드에서 retrofit2 를 사용해보고자 했다. 그러나, 서버에는 도달 하지도 못하고 통신이 계속해서 실패 한다는걸 알았다. - 서버에는 문제가 없는거 같고, 가끔 retrofit2에서 데이터를 받는 타입에 따라, 실패하는 경우가 있어서 해당 부분을 확인 했으나, 그런 문제는 아니었다. - 좀더 자세히 알아보니, 해당 오류가 떠 있었다. - 해당 오류를 의역해보자면, "CLEARTEXT 통신이 `xxx.xxx.xxx.xxx` 에 연결할때 네트워크 규약상 허락되지 않았다." 라는 듯 하다. - `HTTP` 는 `HTTPS` 에 비해서 취약하다는 것을 알고 있었으나, 그 영향일지 어떻게 해결해야 하는지는 모르겠어서 다짜고짜 검색을 해보았다. - 해당 속성은 api 레벨 23부터 추가되었으며, 안드..

    Android Debug :: File.createNewFile() Operation not permitted (Permission을 모두 줬는데도 되지 않는다면?)

    - Manifest.xml ... ... 해당 퍼미션을 주었음에도 File을 생성하려고 할때, Persmission이 허락되지 않았다는 오류가 발생.. API29로 바뀌면서 WRITE_EXTERNAL, READ_EXTERNAL 에 대한 Permission을 주었다고 할지언정 위와 같은 오류가 발생하게 된다. 해당 이슈에 대한 정확한 정보는 어렵지만 검색을 통해 단순 해결방법을 제시하고자한다. 해당 방법은 API 30으로 넘어가기전에 개발자들에게 햇갈리지 말라고 API 29에 대해서만 적용하게 함을 명심하자 즉, API 29에 대해서만 적용되기에 만약 자신의 api가 30 이상이라면 29로 바꾸고 진행해보자, 30이상이어야 하는 이유가 반드시 있다면 이 방법으로는 해결이 안될것이다. 1. api30으로 진..

728x90