안드로이드 스튜디오 (77) 썸네일형 리스트형 [안드로이드 스튜디오 코틀린] 두 좌표 사이 거리 구하기 경도, 위도를 알 때 두 지점 사이의 거리를 구하는 공식을 적용시켜보자 우선 Object로 DistanceManager를 생성해서 아래의 코드를 추가해 준다. import java.math.RoundingMode import kotlin.math.* object DistanceManager { fun distance(preLat: Double?, preLng: Double?, postLat: Double?, postLng: Double?): String { if (preLat == null || preLng == null || postLat == null || postLng == null) { return "" } val result = (6371000 * acos( cos(compareRadians(p.. [안드로이드 스튜디오 코틀린] Vibrator VIBRATOR_SERVICE deprecated 대응 vibrator_manager_service service cast error 대응 초기화 방법 - > vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { val vibratorManager: VibratorManager = getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager vibratorManager.defaultVibrator } else { getSystemService(Context.VIBRATOR_SERVICE) as Vibrator } 코드 적용 AndroidManifest.xml MainActivity.kt import android.content.Con.. [안드로이드 스튜디오 코틀린] 코틀린으로 Swipe & Slide View 만들기 아이폰에서 사용하는 밀어서 잠금 해제를 안드로이드에서 구현하고 싶었습니다. 안드로이드는 Swipe 기능 예제가 다양하지 않더라고요 ㅠ 그래서 오픈 소스 라이브러리를 찾아보았는데 제가 원하는 기능을 수행할 수 있는 라이브러리가 없었습니다. 구현되어 있는 라이브러리의 백그라운드 컬러, 스와이프 버튼을 커스텀하는 것이 쉽지 않더라고요 중간에 gesturedetector를 사용해서 모션 이벤트를 주는 방법을 사용했는데 x, y축을 고려해야 하고 반응 속도와 이런 것들이 생각과는 너무 다르고 사용법이 어려워 정확한 구현을 할 수 없었습니다. 그러던 도중, 좋은 Slide 라이브러리를 발견했습니다!!!!!!!!! https://github.com/cortinico/slidetoact GitHub - cortinic.. [안드로이드 스튜디오 코틀린] LocationRequest.create() deprecated 대응 https://developer.android.com/training/location/change-location-settings?hl=ko 위치 설정 변경 | Android 개발자 | Android Developers 위치 설정 변경 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱에서 위치를 요청하거나 권한 업데이트를 수신해야 한다면 기기는 GPS 또는 Wi-Fi 검색과 같 developer.android.com 주소 위치를 받아 오기 위해 location을 사용하고 싶다. 이 때 같은 주기로 위치를 갱신하고 싶어 locationRequest를 사용하기로 했다. 그런데 LocationRequest.create() 가 deprecated 되었다. LocationReque.. [안드로이드 스튜디오 코틀린] Kotlin MQTT 구동시 응답이 오지 않을 때(Client is not connected (32104)) MQTT를 생성하여 Topic을 구독하는 도중, 응답값이 잘 오지 않았습니다. Client is not connected (32104) 오류가 계속 뜨거나 , Fail은 없고 subscribe callback이 오지 않았습니다. 해결 방법은 waitForCompletion() 함수를 사용해줍니다. 코드에서는 이렇게 연결해주면 됩니다. if (client?.isConnected == false) { val token = client?.connect(mqttConnectOptions,"", MqttConnectListener()) token?.waitForCompletion() } - client : MqttAsyncClient - mqttConnectOptions : MqttConnectOptions() .. [안드로이드 스튜디오 코틀린] 코틀린으로 MQTT publish, subscribe 구현하는 방법 (+소스코드) (전체 코드는 아래에 깃헙 주소를 올려 놓았습니다.) 1. MQTT 플러그인을 설치해 줍니다. https://mqtt-explorer.com/ MQTT Explorer An all-round MQTT client that provides a structured topic overview mqtt-explorer.com 약속된 url에서 username과 password를 입력하고 Explorer에 접속하면 아래와 같은 화면을 볼 수 있습니다. (개인 정보는 지웠습니다.) 2. Android Studio 설정 - AndroidManifest.xml -> 인터넷 허가 추가 - build.gradle(Module:app) -> Mqtt 라이브러리 추가 (화면을 받아오기 위해 viewBinding을 사용하였습니.. [안드로이드 스튜디오 코틀린] 시스템 글씨 크기 키우기 앱을 켰을때, 고정된 글씨 크기의 text를 보여주고 싶었다. 방법을 생각해 보았는데 1. xml 글씨 크기를 키움 2. 시스템 글씨를 키움 등등이 있겠지만, 두 가지의 방법을 테스트해보았다. 1. xml 글씨 크기를 키움 설정 -> 글자 크기를 제일 작게 설정한 뒤 둘 다 똑같은 50sp를 주었고 xml을 미리 보기 했을 때 아래처럼 두 개가 같은 글씨 크기입니다. 하지만 시스템 글씨 크기가 제일 작게 설정이 되어 있어서 앱을 실행한 화면에서는 둘의 크기가 다른 걸 볼 수 있습니다. 글씨 크기를 최대로 하고 다시 확인해 보았습니다. 이렇게 시스템에서 설정을 바꿀 때마다 text 크기가 바뀌는 것을 볼 수 있습니다. 시스템 글씨 크기에 상관없이 화면에 나오는 text의 글씨 크기를 고정시키려면 Typed.. [안드로이드 스튜디오 코틀린] found with path 'META-INF/INDEX.LIST' Error 아래와 같은 에러를 발견했다. 해결 방법은 build.gradle(Module)에 packagingOptions { exclude'META-INF/INDEX.LIST' } 위의 코드를 추가해준다. 위처럼 추가해준다. 추가해줬는데, 다른 META-INF 에러가 뜬다면 packagingOptions { exclude'META-INF/*' } 위처럼 추가해주면 된다. 이전 1 2 3 4 5 6 7 ··· 10 다음