일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- C++ Build
- 권한부여
- 사용자삭제
- Lockscreen
- thread
- YouTube API
- MySQL
- 흰셔츠 #누런때
- Permission
- MariaDB
- background_callback
- C++ Debugging
- 권한
- Background
- 백그라운드
- password
- firebase_message
- 잠금화면
- policy
- C++
- VSCode
- 사용자추가
- Android
- User
- Flutter #Android #FCM #FirebaseCloudMessaging
- Flutter
- 플러터
- 쓰레드
- Today
- Total
목록분류 전체보기 (10)
고래 정보 분류소
문자 콜백 앱을 서비스 중이었는데 안드로이드 최신 OS업데이트 후에 작동이 되지않는다는 이야기를 듣고 부랴부랴 문제를 찾아보았다. 문제는 TelephonyManager의 getLine1Number() 메소드였는데 필요 권한이 누락되었다는 오류였다. 확인 해야되는 권한은 READ_PHONE_STATE, READ_SMS, READ_PHONE_NUMBERS 위 3가지로 나왔다. 앱에 부여한 권한은 READ_PHONE_STATE와 SEND_SMS, WRITE_SMS 였다. READ_SMS는 SEND_SMS 권한을 획득하면 같이 작동이 되는 것을 확인해서 SEND_SMS 권한만 획득하게 했었다. 혹시나해서 READ_SMS 권한도 획득하게 하니 잘 동작했다. 심지어 READ_PHONE_NUMBERS 권한은 어디에도..
사용자 생성 시 비밀번호에서 policy 에러를 만난다면 global 변수의 password_policy를 확인해보자. 비밀번호 관련 설정 확인 쿼리: SHOW VARIALBES LIKE 'validate_password%'; 실행하면 여러 설정들을 볼 수 있다. mixed_case_count, number_count, policy, special_char_count 위의 네가지 설정들을 알맞게 변경해주자. SET GLOBAL validate_password_policy=LOW; policy를 LOW로 하면 1234 같은 간단한 비밀번호로도 설정이 가능하다.
Android에는 잠금화면 액티비티를 개발자가 개발 할 수있다. 그런데 스택오버플로우나 여러 블로그에는 똑같은 글만 돌고 도는듯 하고, 기타 오류에 대해서는 해결법을 찾기 어려웠다. 잠금화면을 띄우기 위해서는 BroadcastReceiver에서 ACTION_SCREEN_OFF, ACTION _SCREEN_ON 액션을 받아서 화면에 액티비티를 띄워야 되는데 매니페스트 파일에 receiver를 등록해 정적 동작은 실행되지 않는다. 그래서 Service를 만들어 Service에서 멤버 변수로 BroadcastReceiver를 동적으로 생성해서 IntentFilter로 위의 두 액션과 함께 registerReceiver로 등록해야된다. 여기서 또 문제는 Service를 Background에서 동작하게 하면 안드..
VSCode로 간단한 C++을 이용한 알고리즘 공부나 해볼까 했다. C++ 플러그인을 설치한다고 해서 바로 빌드가 안되길래 이것저것 검색하며 찾아보니 생각보다 복잡한 과정이 필요하기에 기록을 남긴다. 먼저 VSCode에서 C/C++ 플러그인을 설치한다. 위 플러그인을 설치해야 디버깅이 가능하다. 하지만 플러그인을 설치한다고 빌드가 되는건 아니다. 빌드를 위해 Build Tools를 설치해야된다. 이 과정을 진행하기 앞서 말하지만 빌드를 위한 방법은 이 방법말고도 여러가지가 있다. MinGW를 설치하거나 Cygwin을 설치하여 진행하는 방법도 있다. 이 방법들은 이미 작성된 많은 블로그가 있으니 그 것들을 찾아보면 된다. 내가 선택한 방법은 Microsoft에서 제공하는 Build Tools를 사용하는 방..
firebase_message Plugin의 BackgroundMessage Event에는 껄끄러운 문제점이있다. 비단 이 Plugin의 문제만이 아니라 Background Callback을 등록하는 Plugin들의 문제점일것이다. Flutter 구조를 간단히 분석해본 결과 Android/IOS의 앱 시작부분에 Flutter Engine을 등록하게 되어있다. 예를들어 Android는 MainActivity에 Flutter Engine을 등록해서 Flutter의 Plugin들을 불러와 사용하는 것이다. 위의 firebase_message Plugin 같은 경우 Android 기준 FirebaseMessageReceiver에서 FCM 데이터를 받으면 Service를 거쳐 등록한 BackgroundMessag..
Android Gradle 환경 buid.gradle (Project) : dependencies { classpath 'com.android.tools.build:gradle:3.5.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.2' // Google Services plugin } build.gradle (App) : dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" testImplementation 'junit:junit:4.12..
YouTube Data API는 재생목록, 재생목록 아이템, 비디오 정보 등을 가져 올 수 있고, 동영상 업로드, 삭제 등 제어 요청도 가능한 것 같다. (아직 정보 요청만 사용해봤다. 19-11-09) YouTube Data API를 사용하기 위해서는 Google API Console에서 YouTube Data API v3을 찾아서 사용하기를 해줘야된다. 이 API를 사용하기 위해서는 API키를 발급받아 사용하거나, OAuth2.0을 추가해 사용하는 방법이있다. API키를 받아 사용하는 것이 간편하기 때문에 나는 API키를 발급받아 사용했다. 먼저 Gradle에 라이브러리를 추가한다. android { ... // 충돌을 방지하기위해 추가 configuration.all { resolutionStrat..
흰 셔츠를 입다보면 목 카라부분이 누래지거나 겨드랑이 부분이 땀때문에 누래질 때가 있다. 이럴 땐 표백제를 사용하면 된다. 표백제는 염소계 산화 표백제와 산소계 산화 표백제가 있다. 내가 사용한 것은 과탄산 나트륨(과탄산 소다)으로 산소계 산화 표백제에 포함된다. 락스가 염소계 산화 표백제인데 옷감이 상할 수도 있다고 해서 과탄산 나트륨을 사용하게 됬다. 방법 1. 과탄산 나트륨 종이컵으로 2컵정도에 온도 50~70도의 물을 2L 부어서 섞어준다. 2. 누런 때가 생긴 옷을 잠기게 넣어준다. 3. 30분 정도 기다렸다가 물로 헹구어 내고 세탁기로 일반 세탁을 한다. 신기하게도 과탄산 나트륨에 넣었을 때는 누런때가 안빠지는 것처럼 보이는데, 세탁기에 일반 세제를 넣고 다시 세탁을 하니까 누런때가 사라지고 ..