본문 바로가기

Android/안드로이드 스터디(Kotlin)61

Android] Pending Intent 푸시 서비스에서 액티비티를 열어야 할때 PendingIntent를 이용한다. PendingIntent는 해당 애플리케이션이 종류되더라도 Intent를 보류하며 권한을 위임받아 다른 프로세스에서 살아남아있는 인텐트이다. 따라서, 앱이 종료되더라도 푸시를 받아 액티비티를 열 때 실질적으로는 Intent가 열리는 것이 아닌 해당 Intent의 역할을 위임받은 PendingIntent가 오픈된다. 이 때, 액티비티가 열리며 푸시의 페이로드를 전달해야하는 상황에서 activity intent 에 해당 값을 실어 보낼 수 있는데, 이 때의 주의사항이 있다. 이것이 PendingIntent의 getActivity()의 class이다. PendingIntent.getActivity에 열고싶은 activity의 inte.. 2024. 3. 13.
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.
Android Studio, Kotlin] WindowManager을 이용하여 휴대폰 최상단에 화면 그리기 요즘 휴대폰 최상단에 뷰를 그려주는 앱이 많다. 아마 "다른 앱 위에 그리기" 를 허용하는 앱이 많은 것을 다들 보셨을텐데, 그 기능이다. 어떻게 사용하는지 보자. 간단하게 액티비티와 윈도우에 구애받지 않는다는 것을 보여주기 위해 두 개의 액티비티와, 윈도우 위에 그릴 하나의 뷰를 준비한다. 예시 파일은 아래에 접어두었다. (접은 글 안에 있는, 최상단 뷰를 호출하는 코드와 권한을 요쳥하는 코드는 아직 포함하지 않았다.) (또한, 뷰를 껐다가 켤 수 있는 전역변수를 const로 지정하기 위해 object 파일을 하나 더 만들었다) 더보기 - MainActivity.kt class MainActivity : AppCompatActivity() { private lateinit var textViewMain.. 2023. 3. 16.
반응형