Android (10) 썸네일형 리스트형 [Android,Java] (Deprecated) AsyncTask 대체하기 이전부터 디프리케이트 된다고 말이있었는데 14부터 막히는거 같아서 이제서야 대응하는점.... (아직 되는걸수도 있다?) 이전에 올린 인앱 업데이트와 짬뽕으로 콜라보를 찍어주어서 같이 대응했었다. 앱 로드시 무결성 체크를 하는 업체의 소프트웨어를 사용중인데 제공받은 파일들의 해당 클래스가 AsyncTask 로 되어있고 혹시나 이것이 막히면서 동작을 안하나 싶어서 괜찮은 클래스를 작성해주신것을 발견! 바로 적용해서 바꾸어 주었다 https://calvinjmkim.tistory.com/35 안드로이드 (Deprecated) AsyncTask 대체하기 안드로이드에서 백그라운드 작업을 하기 위해 자주 사용하는 AsyncTask가 사망선고를 받았다. 작년 하반기에 올라온 이 커밋에서 AsyncTask에 @Depr.. [Android,Java] 안드로이드14 대응, 인앱 업데이트 하기 앱을 실행하면서 마켓에 있는버전과 현재 실행한 버전이 다르면 업데이트를 진행하는 인앱 업데이트를 해보려고한다. 이전에 사용하던 버전이 갑자기 리젝을 당하여 앱이 로드되지 않는다며 2주간 싸운결과 기존에 사용하던 인앱 업데이트 라이브러리가 디프리케이션이 되었고 리뷰어는 아마도 안드로이드14 버전으로 하는듯 싶다 참고는 역시 그냥 디벨로퍼문서 https://developer.android.com/guide/playcore/in-app-updates/kotlin-java?hl=ko 인앱 업데이트 지원(Kotlin 또는 자바) | Android 개발자 | Android Developers 인앱 업데이트 지원(Kotlin 또는 자바) 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. .. [Android,Java] 안드로이드13 , SDK33 타겟 시 파일첨부 및 퍼미션 해결 안드로이드 sdk33 으로 타겟을 해야 업데이트가 진행된다는 구글 플레이스토어 이슈로 일주일정도 삽질후에 해결하였다 후... 라이브러리를 사용하여 쉽게 처리하려 했지만 라이브러리가 해당 이슈에 대응되지 않아서 직접 작성을 하였다 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); fileActivity.launch(intent); 우선 SAF 를 이용하여 파일을 선택하도록 작성하였다. 타입은 원하는대로 작성하여 원하는 파일만 보여지도록도 가능하다. ActivityResultLauncher fileActivity2 = registerF.. [Android,Java] 안드로이드13 (SDK33) 대응 파일 업로드 (File Read) 관련 퍼미션 정리 (수정. 심사통과 안됨!!) // 9월 11일 수정 // 여러번 이의 제기와 심사를 반복하였지만 통과시켜주지 않음 다른방법으로 파일처리 완료 23년 9월 1일자 오늘부터 마켓에 업데이트를 하려면 targetSdkVersion 을 33 이상으로 해라 라고 경고가떠서 아무생각없이 8월마지막주에 타겟만 올리고 배포를 해버렸다 (테스트폰은 안드로이드10 이라 잘만되었기에....) 그런데 문제가 발생 퍼미션 권한 등의 오류 (퍼미션체크 부분)등으로 앱실행이 안되어버린것 13버전 혹은 12버전 최신 기종 OS에서 문의가 빗발쳤다... 이래저래 찾아보다 결국 문제를 해결은 했지만 구글마켓 언제 검토해줄래 언제까지 검토중이니.... 우선 이전 버전들에서는 혹은 타겟이 낮은 앱에서는 외부저장소에 파일을 읽어서 업로드를 한다던가 사용을할때 해당 퍼미.. [Android,Java] APP과 WEB 통신하기 (JavascriptInterface) 하이브리드 앱을 만들면서 앱과 웹 사이에 정보교류가 필요하게된다 웹에서 앱을 호출하여 네이티브적인 요소를 동작시키거나 반대로 앱에서 웹을 호출하여 웹에서의 동작 또는 데이터를 넘겨주거나 할때 말이다 우선 웹에서 앱을 호출하게 될때를 알아보자 안드로이드에서는 JavascriptInterface 를 사용하여 웹에서 앱을 호출하여 스크립트를 사용하듯이 앱을 동작시킬수있다 webView.addJavascriptInterface(new AndroidBridge(), "HybridApi"); . . . private class AndroidBridge { public AndroidBridge() { // TODO Auto-generated constructor stub } } 우선 webView 에 addJavas.. [Android] WebView 파일 다운로드 구현 하이브리드 앱을 만드는 과정에서 앱에서 직접 파일 다운로드를 구현해야 되는 상황이 생긴다 보통은 다른 웹 브라우저를 통해서 다운로드 해도 되지만 직접 받기위해서 추가로 구현해야한다 webView.setDownloadListener(new DownloadListener() {}); 웹뷰의 setDownloadListener 를 이용하면 파일 다운로드를 만들수있다. webView.setDownloadListener(new DownloadListener() { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { try { D.. [Android,Java] 리스트뷰 배경 테두리(Border) 및 라운드 넣기 라운드된 배경을 xml로 만들어서 사용하면 거진 바로 적용이되는데 리스트뷰는 이상하게 라운드된 뷰 위로 내용들이 삐져나와서 제대로된 화면이 나오질 않았다 clip옵션도 줘보고 백그라운드도 여기저기 옴겨가면서 해봤는데 안되서 최종적으로 커스텀뷰와 백그라운드 두가지를 설정하니 정상적으로 동작하였다. 해결!! 리스트 뷰 백그라운드에 사용할 XML을 먼저 작성한다 설명은 앞단 포스트 참조 보통은 해당 xml을 백그라운드로 지정하면 된다고 하지만 어째서인지 계속 먹히지 않고 배경은 라운드지만 리스트 아이템들이 삐져나와서 사각형이 보이는 형태가 되어버렸다 SwipeRefreshLayout 을 사용해서인지 RecyclerView 를 사용해서인지도 모르겠다 그래서 이래저래 다 해보다가 최종적으로는 커스텀뷰로 Recyc.. [Android] 버튼, EditText, View 테두리(border) 배경 만들기 첫뻔재 item 으로 border를 셋팅 shape = "rectangle" 사각형 모양을 만들고 stroke 에서 width 와 color 를 지정 corners raduis 로 라운딩을 설정 두번째 item으로 내부 색상을 셋팅 첫번재 1dp width 만큼 상하좌우 1dp 를 주고 동일하게 shape = "rectangle" 가득채울 색상 solid 로 color 속성 지정 corners raduis 로 라운딩을 설정 검은색 5dp 라운딩의 테두리가 있는 흰색배경을 생성할수있다 Butter Knife 라이브러리 - 클릭 이벤트 Butter Knife 라이브러리로 클릭이벤트를 받는 것을 해보겠습니다 기존에 리스너를 만들고 setOnClickListener 에 연결을 했었는데 해당 라이브러리로는 한번에 연결을 할수있다 @OnClick({R.id.btn}) public void onBtn(View v) { switch (v.getId()) { case R.id.btn: //이벤트 등록 break; } } 위처럼 @OnClick 으로 연결하는데 뒤에 UI의 id 를 써주면 해당 UI가 연결되어진다 만약 연결이 안되거나 오류가 발생한다면 Bind가 안되어있을 수 있다. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta.. Butter Knife 라이브러리 findViewById 를 이용하여 UI를 연결하는 것을 간소화 등의 다양한 기능제공 https://github.com/JakeWharton/butterknife JakeWharton/butterknife Bind Android views and callbacks to fields and methods. - JakeWharton/butterknife github.com 해당 링크에 자세한 내용 확인 가능 안드로이드 스튜디오 기준으로 작성하였습니다 -설치하기 app: gradle 에 해당 내용 작성 android { ... // Butterknife requires Java 8. compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetComp.. 이전 1 다음