Android(Java) 18

viewBinding 사용 시 같은 view Id를 사용하는 경우

뷰 작업중 갑자기 TabLayout.addTab이 작동하지 않는 상황이 발생했다. 이것저것 확인해보다가 알아낸게 공통 topView 로 빼둔 레이아웃에도 tabLayout 을 id 로 쓰는 뷰가 존재했고 작업중인 Fragment에도 tabLayout을 id로 쓰는 뷰가 존재하는게 문제였다. 공통 뷰를 위해 을 많이 사용해서 작업할 땐 문제가 없길래 include 내부 뷰와 id가 겹쳐도 큰 문제 없을거라 생각했는데 이런 이슈가 발생하더라 흠.. 네이밍 규칙을 더 철저하게 하는수밖에..

Android(Java) 2023.05.25

인터넷 연결 여부 확인하기

인터넷 연결을 필수로 하는 서비스의 경우 인터넷이 계속 연결되어있는지 검사할 필요가 있다 그 때 사용하도록 하자 private void CheckInternetConnection() { NetworkRequest.Builder builder = new NetworkRequest.Builder(); ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); manager.registerNetworkCallback(builder.build(), new ConnectivityManager.NetworkCallback(){ @Override public void onUnavailable() {..

Android(Java) 2022.07.05

디바이스 마이크에서 녹음하기

기본 라이브러리인 MediaRecorder를 사용한다 먼저 MediaRecorder 변수를 초기화 해준다 recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setOutputFile(getCacheDir() + "/audio.3gp"); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 오디오 소스는 마이크 포맷과 인코딩 형식은 여러가지 있으니 편한거로 OutputFile 은 Path String으로 선언해주었다 try..

Android(Java) 2022.06.24

안드로이드 Retrofit2 Response 오류 해결 법

Expected BEGIN_OBJECT but was STRING 업무상 Rest API를 이용해야 하는 일이 생겼는데 Response가 계속 onFailure로 들어가더라 오류를 확인해보니 객체가 아니라 문자열로 떨어진다는데.. 리턴값은 json으로 받는데 이상하다 싶었다 잘 보니 [ {....}, {....} ] 인 리스트 형식으로 떨어지고 있어서 생긴 문제였다 json object 로 시작하지 않는 경우에는 Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(ScalarsConverterFactory.create()) .client(client) .build(); GsonConverterFactory 대신 Sca..

Android(Java) 2022.05.03

안드로이드 날짜간의 차이 계산 알고리즘

작업 도중 날짜 간 차이를 계산해야하는 일이 생겼는데 두 날짜간에 며칠인지 정도밖에 구할수 없길래 이참에 직접 만들어봤다 "yyyy-MM-dd" 형식의 날짜 두개를 넣으면 몇년 몇개월 몇일 차이인지 리턴하는 클래스다 나와 같은 사람에게 도움이 되기를 바란다! https://github.com/eitu-jerry/Android-CalculateDateDiff GitHub - eitu-jerry/Android-CalculateDateDiff: Insert Two Date and Get Year, Month, Day difference Insert Two Date and Get Year, Month, Day difference - GitHub - eitu-jerry/Android-CalculateDateDif..

Android(Java) 2022.04.08

Android 11 이상 버전에서 외부 저장소 이미지 삭제하기

Android R(API 30) 이상 버전부터는 WRITE_EXTERNAL_STORAGE 권한을 받을 수 없게되었다. 이에 따라 기존의 파일 저장 방식이나 삭제 방식을 사용할 수 없게 되었는데 이번 포스트에서는 그 해결법을 공유하고자 한다. https://codechacha.com/ko/android11-storage-updates/ Android11 - Storage(저장소) 정책 변경사항 정리 Android11(R)의 Preview에서 Storage(저장소) 변경사항을 정리하였습니다. 이번 업데이트는 Android10의 Scoped storage를 보완한 것들이 대부분입니다. All Files Access이 추가되고, 퍼미션들의 정책도 조금 변경 codechacha.com 이제는 MediaStore ..

Android(Java) 2022.04.06

자주 까먹는 문법 정리

1. 기기 가로세로 픽셀값 가져오기 //가로 픽셀 getResources().getDisplayMetrics().widthPixels; //세로 픽셀 getResources().getDisplayMetrics().heightPixels; 2. dimen.xml 에 정의한 사용자 정의 dp값 가져오기 getResources().getDimensionPixelOffset(R.dimen.yourDimen); 3. 상단바까지 전부 가린 FullScreen 모드로 설정하기 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 4. ActivityResultLauncher 초기화 ActivityResultLauncher yourLauncher; you..

Android(Java) 2022.02.23