일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Qt OpenGL
- 자바
- 엑티브엑스
- Qt 소켓프로그래밍
- qt 설치
- 고속도로
- 자료구조
- 마영전
- HTML
- 정성하
- 스타크래프트2
- 이륜차
- 바이크
- QT
- 윈도우7
- Qt4
- Java
- 양평역
- 알람프로그램
- 오토바이
- 재귀함수
- c언어
- FFI
- 디자이어HD
- 잡담
- QTcpServer
- vuejs
- 스타2
- android SAF
- 안드로이드
- Today
- Total
목록프로그래밍/안드로이드 (53)
프로그래밍과 잡담
그냥 심심풀이로 만드는 앱이 있는데, 해당 앱을 비공개 처리 했다. 왜냐하면, 이게 돈은 안되는데 구글 새끼들이 사업자 정보를 요구하고, 그걸 구글 플레이 스토어에서 공개를 함. 그래서 짜증나서 그냥 비공개 처리 했음. 요구 하는 정보는 아래와 같다. 1. 전화번호2. 이메일3. 주소 그리고 3개가 무조건 공개가 됨. 뭐 사업자를 가지고 있고, 따로 사무실도 있고 전화도 따로 있는 사람들이라면 문제가 없음. 하지만 나같은 경우, 개인은 집 주소와 개인핸드폰 번호를 넣어야 함. 그러면 내 개인정보를 외부에 공개해버리는 꼴이잖아? 게다가 전화 번호가 개인 전화번호인데 이걸 통해서 스팸같은게 오는거 같음. 그래서 앱을 마켓에서 내린 선택을 한건 더더욱 잘한거 같음. 돈은 돈대로 안되..
안드로이드 앱에서 위의 빨간색으로 친 부분을 제거 하기 위해서는 예전에는 아래와 같은 코드를 썼다. window.decorView.apply{ systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN } 근데 이거 쓰면 android lint 라는 거지같은거에서 deprecated 가 되었다 한다. 구글 이것들의 문제는 해결법을 알려주던가 해야하는데, 크게 도움이 안되는 개소리가 써있다는게 문제지. 그 개소리가 뭐냐면 최신 API 의 기능을 쓰라는 이야기임. 근데 그거 쓰면 하위 버전을 쓰는 폰들은 이 앱을 못쓰게 된다는거지. 아주 개같이 만들어놧..
매번 이 거지같은 안드로이드 빌드 툴은 gradle의 버전을 올릴 때마다 오류가 나온다. 그냥 한번에 되는 경우가 없어. 그리고 오류 메시지도 제대로 알려주질 않어. gradle 버전을 8.0 으로 올리고 빌드하면 이런 개같은 오류가 나는데 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. 언제나 그렇듯이 내용이 잘 이해가 되지 않는다 버전이 1.8인데 현제 타겟은 17이라는건데 그러면 씨발 해결 방법을 알려주면 좋을텐데 개같은..
안드로이드 스튜디오 사용 중에 나는 어두운 테마로 쓰고 있는데, 소스 접는 아이콘 이 졸라 안보여서 찾아봤다. 다행이 금방 나오더라구. 그래서 나중을 위해서 해당 페이지 링크와 내용을 적어둔다. Setting 창에서 Tear Line 을 검색해서 색을 바꾸면 됨 https://intellij-support.jetbrains.com/hc/en-us/community/posts/206178229-Change-color-of-code-fold-markers-and-guide-lines-
화면꺼지는 이벤트를 잡을 려면 아래와 같이 해야한다. val receiver = MyReceiver() val filter = IntentFilter() filter.addAction(Intent.ACTION_SCREEN_OFF)// 화면 꺼짐 filter.addAction(Intent.ACTION_SCREEN_ON)// 화면 켜짐 registerReceiver(receiver) 근데 문제는 이렇게 해서 문제가 없으면 다행인데, 화면이 꺼지고 나면 onPause(), onStop() 순으로 호출이 되는데 onStop() 후에 onSaveInstanceState () 가 호출되는게 문제라는거지. 이게 왜 문제냐? 여기서 저장하는 정보가 특정 크기는 넘어서 버리면 앱이 뻗어버린다는 큰 문제가 있음. 그러니 ..
망할 구글이 앱 폴더가 아닌 외부 폴더에 접근 할려면 Storage Access Framework 를 강제 하고 있다. 그러니 그거 쓸려면 DocumentFile 이란 걸 사용해야하는데 문제는 특히 파일 목록을 가져오는 기능이 느리다는거다. MediaStore를 쓰면 속도가 좀 더 빠를려나 근데 난 MediaStore를 쓸데가 없으니 문제지.. 폴더 내의 파일이 대충 100개도 안되지만, 그냥 가지고 오는건 어찌어찌 가지고 오는데, 이걸 가지고 정렬까지 하면 졸라게 느려진다. 근데 문제는 이걸 더 개선하려고 해도 내부로직이라 그럴 방법 없다는거지. 소스까봐도 이상한 DocumentProvider 같은거 가지고 지지 복는데 봐도 잘 모르겠으니.. 다른 방법은 데이터베이스에 넣어서 처리하던가 아니면 파일로 ..
왜 거지같냐면 gradle 버전을 업데이트 할 때마다, 거지같은 오류가 항상 발생하냐? 그리고 오류 메시지도 정확하지도 않음. 오류난거대로 고치면 안됨 ㅋ 이상한 dex 오류가 나는데, 구글 검색해도 현상이 죄다 제각각임. 망할 gradle 은 항상 이랬어. 한방에 되는걸 본 적이 없는거 같네. 존나 이상하게 만드는거 같아 이 미친 구글새끼들. 전 버전에서는 잘되던게 업데이트만 하면 종속성 오류가 나질않나 오류가 날꺼면 제대로나 알려주던가 이상한 오류만 보여주고 말이야
안드로이드가 21년 11월부터는 TARGET API를 30 이상으로 강제한다 고 한다. Play Console에 들어가서 메시지함에 들어가면 나오는건데 이게 무슨 소리냐 하면 11월 부터는 저장소에 직접 접근이 불가능하다는 소리지. 그 전에 Storage Access Framework 나 아니면 MediaStore 방식으로 바꾸라는거지. 무조건 그 개떡같은 방식을 쓰라는거지. 개같은 구글 아예 처음부터 이렇게 하던가 하지. 왜 갑자기 저 지랄이야. 관련 정보 : https://android-developers.googleblog.com/2020/11/new-android-app-bundle-and-target-api.html
좆같은 구글이 폴더에 접근방식을 개같이 만들어 버렸다. 아마 애플이 이딴 방식으로 되어 있겠지 안써봐서 모르겠지만. 타겟버전을 무조건 29 이상으로 안하면 스토어 앱을 못 올린다. 아직 29까지는 manifests 에 예외 기능을 넣어서 기존 처럼 사용이 가능하지만 언제 타겟 버전을 30으로 올릴지 모른다. 여하튼 여태까지 접근 하던 방식인 File 클래스를 통한 접근은 더 이상 동작하지 않는다. File("/sdcard/").listFiles() // 이렇게 하면 null 떨어짐 구글 새끼들이 쓰라고 하는 방식은 공용 폴더는 MediaStore 인가 뭔가 써서 접근 하라고 하고 일반 폴더는 SAF(Storage Access Framework) 를 쓰라고 한다. 사실 이거 나왔을 때 잘 안썼다. 쓰기가 ..
초창기의 개방형 OS가 아닌 점점 애플 iOS 처럼 폐쇄적으로 가는거 같다. 왜 그러냐 하면은 점점 저장소에 대해서 iOS 처럼 바뀌고 있다. 최근 타겟 버전을 29버전 이상으로 강제하고 있다. 이 버전부터는 앱이 내부 폴더 이외의 장소에는 접근을 할 수 없게 된다. 즉, 안드로이드 앱의 앱 내부 저장소는 /data/data/앱이름 으로 되어 있는데 이 아래의 정보만 접근이 가능하다. 그외에 공용 폴더는 접근이 가능하다. 그림, 동영상 이딴거 말이야. 예전에는 폰의 내부저장소(/sdcard), 외부저장소( /storage/123-123) 에 바로 접근을 할 수 있다. 근데 지금은 접근을 할려면 Storage Access Framework 를 써야한다. 그리고 안드로이드 11버전에선 저장소의 루트 폴더에 ..