본문 바로가기

Android125

Android] Pending Intent 푸시 서비스에서 액티비티를 열어야 할때 PendingIntent를 이용한다. PendingIntent는 해당 애플리케이션이 종류되더라도 Intent를 보류하며 권한을 위임받아 다른 프로세스에서 살아남아있는 인텐트이다. 따라서, 앱이 종료되더라도 푸시를 받아 액티비티를 열 때 실질적으로는 Intent가 열리는 것이 아닌 해당 Intent의 역할을 위임받은 PendingIntent가 오픈된다. 이 때, 액티비티가 열리며 푸시의 페이로드를 전달해야하는 상황에서 activity intent 에 해당 값을 실어 보낼 수 있는데, 이 때의 주의사항이 있다. 이것이 PendingIntent의 getActivity()의 class이다. PendingIntent.getActivity에 열고싶은 activity의 inte.. 2024. 3. 13.
Android] error : Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 프로젝트 중 Volley로 작성 된 코드가 있어 이를 Retrofit2로 변경하는 역할을 맡았다. 이 때 마주한 오류 중 하나가 Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 이다. 이 오류는 Gson 역직렬화 오류로, 유연하게 해석하면 Json으로 줄 줄 알았는데 Json 형식이 아니네? 우리가 해석할 수 있게 유연하게 해석하는걸 허가해줘! 이다. 맞다, 해당 프로젝트의 서버 Response의 형식은 JSON이 아니라 0, 1, 9999 ... 등으로 간단한 String만 날려주는 응답을 준다. 원래 Gson은 JSON의 형식을 엄격하게 지키기 때문에 이 형식에 의거하지 않으면 형식이 맞지 않다며 오류.. 2024. 2. 5.
Android] error : executing external native build for ndkBuild Serial Port를 사용해야할 일이 있어서 ndk 파일이 포함된 api를 Import 해야할 일이 생겼다. Android.mk 파일을 cpp로 Import 하고 난 후에 생성된 cpp 폴더가 어쩐지 열리지 않더라니, 해당 오류가 발생했다. 이 오류는 ndk 외부 파일을 사용할 때, 단순히 C++ 파일을 추가하기만 하고 빌드하면 생기는 오류이다. 이 오류를 고치는 방법은 단순한데, 외부 ndk를 실행하기 위한 ndk 버전을 지정해주기만 하면 된다. ... externalNativeBuild { ndkBuild { path file('../Android.mk') } } ndkVersion '26.1.10909125' .. 2024. 1. 22.
Android Studio, Kotlin] 화면 터치 시 클릭이벤트와 손가락 무빙 이벤트를 다르게 처리하기 가끔 모션 개발을 하다 보면, Action_Move가 들어가야 할 케이스가 있다. 여기서, 손가락을 단순 클릭 했을 때와 움직임과 무빙 후 움직임이 달라야하는 케이스가 있다. 이 때, 얼마나 짧게 클릭하던 무조건 Action_move가 호출된다 봐도 무방하기 때문에, 초기 클릭과 손가락을 뗐을 때의 시간차를 계산하여 이를 단순 클릭인지, 혹은 이동 후 손가락을 뗀 것인지 판단한다. 사용자의 특성과 코드의 특징에 따라 longClickLimitf를 조절하여 클릭으로 판단하는 시간의 길이를 유동적으로 조절해야 한다. 호출 시기는 아래에 주석으로 적어두었다. var firstClickTime : Long = 0 val longClickLimit = 200 rootView?.setOnTouchListener {.. 2023. 3. 17.
반응형