목록전체 글 (134)
Foggy day
MediaRecorder 클래스를 사용해서 음성 녹음 기능을 구현해보겠습니다. 1. 권한 추가 2. 녹음 코드 구현 1. 권한 추가 음성 녹음을 위해 Audio 권한과 녹음한 파일을 저장하기 위한 storage 권한을 추가하겠습니다. 그리고 application tag에 android:requestLegacyExternalStorage="true"를 추가 하는 것 또한 잊지 마세요. AndroidManifest ... runtime으로 권한을 요청하겠습니다. ActivityCompat.requestPermissions( this, arrayOf( Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.pe..
안드로이드 fcm을 수신하는 방법을 간략히 정리했습니다. 1. 파이어베이스 2. Android 코드 구현 1. 파이어베이스 Fcm을 수신하기 위해서는 파이어베이스에 등록 작업을 해야 합니다. 사진은 생략하고 처리 해야 할 항목만 나열하겠습니다. - 프로젝트 생성 - google-services.json 파일 다운로드 및 프로젝트에 추가 - 안드로이드 앱 추가 - 앱을 추가한 후에 프로젝트 설정 -> 일반 -> Sha 인증서 추가 sha1 키 발급 방법 https://jinhan38.com/14 Android(안드로이드) - How to get debug/release SHA-1 Sha key is needed when we use api like google and kakao and so on. So, ..
Android studio에서 갑자기 [Syntax highlighting has been temporarily turned of because of an internal error] 오류가 발생할 때가 있습니다. Invalidate caches, project clean, Repair IDE, Android Studio 최신 버전으로 업데이트 전부 실행해 봤지만 소용이 없었습니다. * 해결책 보통 이 에러는 특정 파일에서 발생했었습니다. 그래서 해당 파일을 다른데 복사한 후에 에러 나는 파일을 삭제하고, 복사해둔 파일을 다시 집어 넣었더니 해결 됐습니다.
Git 계정을 여러개 사용하다보면 새로 프로젝트를 클론하거나 만들 때 아래와 같은 오류를 볼 수 있습니다. remote: Permission to ~~ denied to ~~. 이는 사용하려는 git 계정 대신 다른 계정으로 사용하려고 시도했기 때문입니다. 이런 경우에는 제어판 -> 사용자 계정 -> 자격 증명 관리자 -> git:https://github.com 으로 등록된 자격 증명을 삭제한 후에 다시 시도하면 됩니다. git push나 pull이 가 정상적으로 된 후에 다시 자경 증명 관리자를 확인해 보면 수정한 날짜: 오늘 로 다시 git:https://github.com 항목이 생성된 것을 볼 수 있습니다.
Flutter 프로젝트를 진행하다보면 android로 빌드를 하면 this and base files have different roots: 오류가 종종 발생합니다. 이럴 때 임시방편으로 시도해 해결책이 있습니다. flutter clean을 실행 한 후에 gradle sync now를 실행하면 정상적으로 빌드가 됩니다. 1. flutter clean 2. android gradle sync 3. flutter pub get *확인 할 사항 android -> local.properties -> sdk.dir 경로를 확인해주세요 window와 mac의 경로가 달라서 git으로 협업을 할 때 경로가 달라질 수도 있습니다.
1. 빌드 실행 시 web security 해제 Edit Configuration-> Additional run args -> --web-browser-flag "--disable-web-security" 추가 2. flutter sdk에서 web security 해제 - flutter\bin\cache 로 이동, flutter_tools.stamp 파일 삭제 - flutter\packages\flutter_tools\lib\src\web 이동 -> chrome.dart 파일 오픈 기존에 있는 --disable-extensions 주석 or 제거 '--disable-web-security' 추가( 끝에 ,도 잊지 말것) // '--disable-extensions', '--disable-web-secur..
UsageStatsManager 클래스를 사용하기 위해 PACKAGE_USAGE_STATS 권한을 요청해야 했습니다. 1. manifest에 permission 추가 2. 런타임 권한 요청 private fun checkPermissionUsage(): Boolean { val appOps = applicationContext .getSystemService(APP_OPS_SERVICE) as AppOpsManager val mode = appOps.checkOpNoThrow( AppOpsManager.OPSTR_GET_USAGE_STATS, Process.myUid(), applicationContext.packageName ) val granted = if (mode == AppOpsManager.M..
android.permission.SYSTEM_ALERT_WINDOW 권한은 overlay View를 사용하기 위해 필요합니다. 1. manifest 에 permission 추가 2. 런타임 권한 요청 checkPermissionOverlay 함수로 권한을 요청하면 권한 허용 시스템 창으로 이동하게 됩니다. 그리고 다시 화면으로 돌아왔을 때 onActivityResult에서 권한을 허용 했는지 아닌지 확인할 수 있습니다. const val overlayPermission = 100 .... private fun checkPermissionOverlay(): Boolean { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Settings.canDra..
Dart언어로 위경도 좌표를 TM 좌표로 변환하는 클래스입니다. import 'dart:math'; /// 장반경 const double _longRadius = 6378137; /// 단반경 const double _shortRadius = 6356752.31425; /// 투영원점 경도 const double originLong = 127; /// 투영원점 위도 const double originLat = 38; class TMCalculation { /// [lat] 위도 /// [long] 경도 /// [callback] 위경도를 TM 좌표 값으로 변환해서 전달하는 콜백 /// 위도 -> TM 좌표 E /// 경도 -> TM 좌표 N TMCalculation({ required double lat..
이번 포스팅에서는 Flutter와 IOS Native가 통신하는 방법을 알아보겠습니다. Flutter는 MethodChannel을 사용해서 각 플랫폼과 통신할 수 있습니다. 메소드 채널은 비동기방식이며 FIFO 순서를 보장합니다. 1. Flutter -> IOS 2. IOS -> Flutter 1. Flutter -> IOS 먼저 할 것은 메소드채널 클래스를 만들어주고, 채널명과 호출할 함수의 이름을 정하는 것입니다. 예제에서 채널명은 iosMethodChannel이고, 함수명은 talk입니다. Dart에서 talk라는 함수를 호출하면 IOS에서 String 문자열을 리턴할 예정입니다. Dart static const platform = MethodChannel('iosMethodChannel'); St..