
Android에서는 음성인식 모듈이 기본 탑재되어있습니다 별도의 외부 라이브러리를 사용하지 않아도 기본 API 를 이용해 음성인식을 구현할 수 있습니다 1. manifest 수정 앱에서 음성인식을 사용하는 것을 알리기 위해 action을 정의해주어야 합니다 2. 코드 구현 SpeechRecognize 를 이용해 음성인식을 구현합니다 RecognitionListener를 달아 결과 및 에러를 수신하여 처리합니다 private fun speechRecognize(context: Context) { val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, c..

Room 사용 중 table 의 schema 가 변경되거나 하면 version을 올려주어 db 내용 이전 작업을 해줘야 합니다 예제에서는 기존 User table에 nickname이 추가된 경우를 가정합니다 1. 배경 기존 테이블 CREATE TABLE USER( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INT NOT NULL ) 변경하고자 하는 테이블 CREATE TABLE USER( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INT NOT NULL, nickname TEXT ) 2. 변경작업 우선 Migration 객체를 만들고, migrate method을 ove..

Media file등을 DB에 저장해두고 사용하는데, 외부에서 파일이 지워진 경우가 발생하였습니다 파일을 열기 전에 파일이 존재하는지 확인하는 용도입니다 fun exists(context: Context, uri: Uri): Boolean { return try { val contentResolver = context.contentResolver val inputStream = contentResolver.openInputStream(uri) inputStream?.let { it.close() return true } ?: run { return false } } catch (exception: Exception) { false } }
국가별로 익숙한 날짜 표현 형태가 다르기 때문에, 다국어 앱 개발 시 이를 고려해야합니다 Locale에 따라 국가별로 SimpleDateFormat을 각각 설정할 수 도 있겠지만, 모든 국가를 고려하는게 쉽지 않습니다 android.text.format.DateFormat.getBestDateTimePattern 메소드를 사용하면, 이를 자동으로 지원할 수 있습니다 import android.text.format.DateFormat import java.text.SimpleDateFormat import java.util.* fun getDateTimeText(): String { val pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), ..

1. 사전 준비사항 주소(geo schema)를 처리할 수 있는 맵 관련 앱이 설치되어있어야 합니다 (네이버 지도, 구글 맵 등) 2. Intent 에서 geo schema를 호출하기 위해 AndroidManifest.xml에 queries 추가 3. Intent호출 val address = "서울 종로구 사직로 161" val intent = Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("geo:0,0?q=${Uri.encode(address)}") } if (intent.resolveActivity(context.packageManager) != null) { context.startActivity(intent) }

많은 앱에서 사용하고 있는 Menu 구현 방법에 대해 알아보겠습니다 1. menu 파일 추가 리소스 폴더에 menu 폴더를 추가하고, 그안에 메뉴 구성을 위한 menu 파일을 추가합니다 이 예제에서는 test_menu.xml 라는 이름으로 추가하였습니다 2. menu 파일 내용 작성 title, icon 및 동작방법을 정의할 수 있습니다 이 예제에서는 showAsAction을 collapseActionView로 설정하였기 때문에 메뉴가 감춰진 상태(more: 점세개)로 표시되고, more 버튼을 눌렀을때 메뉴 리스트가 표시됩니다 HTML 삽입 미리보기할 수 없는 소스 3. Activity에 menu 코드 작성 Activity 코드에 onCreateOptionsMenu를 override하여 위에서 작성한 ..
- Total
- Today
- Yesterday