일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BottomSheetDialog
- socket.io
- hung-up
- mosquitto
- mqtt
- Java8
- git-push
- Galaxy Watch
- AWS
- firebase-database
- gradle
- NoSuchMethodError
- Flavors
- ozd
- socket-server
- Firebase
- socket-client
- OZViewer
- 워치
- TIZEN
- Kotlin
- git
- Android
- JNI
- 오즈뷰어
- firebase-storage
- cloud-firestore
- Dva
- google-login
- ActivityResult-API
- Today
- Total
목록Android (20)
Hyeyeon blog
새로운 액티비티를 띄울 때와 퍼미션을 요청할 때 사용되었던 startActivity, requestPermission을 간결하게 대체할 수 있는 ActivityResult API 입니다. 기존에는 onActivityResult에서 requestCode에 따라 케이스를 나누어 결과 값을 처리했다면 이제는 각 케이스 별로 콜백을 나누어 받아 처리하여 더욱 명시적인 코드를 작성할 수 있습니다. dependency 추가 - 최신 버전은 [링크]에서 확인하실 수 있습니다. implementation 'androidx.activity:activity-ktx:1.2.0-alpha05' startActivityForResult 대체 1. 기존 방식 (startActivityForResult 사용) val intent ..
1. Java KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); if (keyguardManager.inKeyguardRestrictedInputMode()) { // 화면 잠금 상태 } else { // 화면 잠금 해제 상태 } 2. Kotlin val keyguardManager = getSystemService(KEYGUARD_SERVICE) as KeyguardManager if (keyguardManager.inKeyguardRestrictedInputMode()) { // 화면 잠금 상태 } else { // 화면 잠금 해제 상태 }
gradle을 사용하여 Api key를 소스 코드에 그대로 노출시키지 않고 안정하게 사용하는 방법입니다. 1. gradle.properties 에 사용하려는 key 값을 정의합니다. secure_api_key = "apiKey" 2. build.gradle(Module:app)에 해당 key를 빌드 모드 별로 지정합니다. - release, debug 모드에 따라 사용할 key를 각각 입력합니다. - buildConfigField로 정의한 key는 java/kotlin 코드에서 사용할 수 있습니다. - resValue로 정의한 key는 xml에서 사용할 수 있습니다. android { buildTypes { release { buildConfigField 'String', "API_KEY_NAME", s..
자바 호환성에 대한 명시가 없으면 아래와 같은 오류가 발생한다. java.lang.NoSuchMethodError: No static method metafactory build.gradle (app)에 Java1.8에 대한 내용을 추가하면 해결된다. android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } }
1. Zxing dependency 추가 (참고: Zxing Github) 1-1. min SDK version이 24 이상인 경우 dependencies { implementation 'com.journeyapps:zxing-android-embedded:4.1.0' } 1-2. min SDK version이 23 이하인 경우 dependencies { implementation('com.journeyapps:zxing-android-embedded:4.1.0') { transitive = false } implementation 'com.google.zxing:core:3.3.0' } 2. Zxing으로 Bitmatrix를 생성하는 함수와 생성된 Bitmatrix를 Bitmap으로 변환하는 함수 pr..
1. BottomSheetDialogFragment 를 상속받는 Fragment 생성 1-1. dialog_bottomsheet.xml 1-2. BottomDialogFragment.kt class BottomDialogFragment(var adapter: BottomDialogAdapter) : BottomSheetDialogFragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.dialog_bottomsheet,container,false) } override fun onV..
if(imageView.drawable is BitmapDrawable) { val bitmap = (imageView.drawable as BitmapDrawable).bitmap } else { val drawable = binding.profileIv.drawable val bitmap = Bitmap.createBitmap(drawable.intrinsicWidth, drawable.intrinsicHeight, Bitmap.Config.ARGB_8888) }