구글 드라이브에 파일을 자동으로 업로드 할 일이 생겨 만들어봤습니다. 0. 콘솔 링크 console.developers.google.com/flows/enableapi?apiid=drive 1. 링크로 이동, 계속 클릭 2. 사용자 인증 정보로 이동 3. 호출 위치 선택 이후 '어떤 사용자 정보가 필요한가요?' 클릭 4. 동의 화면 설정 5. 외부 -> 만들기 - 내부는 G-suite 사용자만 사용가능 6. 어플리케이션 이름 설정 후 계속 확인 7. 사용자 인증 정보 -> 사용자 인증 정보 만들기 8. OAuth 클라이언트 ID 클릭 9. 기타 -> 생성 10. OAuth 클라이언트 ID 맨 오른쪽 다운로드 11. 구글드라이브에 실험 폴더 만들기 12. 폴더 ID 확인 - 위 파란 줄 친 부분이 폴더 I..
메이커톤에서 라즈베리파이를 다룰 일이 생겼습니다!! 간단한 웹 서버를 만들까 하다가 제가 만들고자 하는 로직이 별로 복잡하지 않고 로드도 작아서 소켓 통신으로 만들기로 했습니다. 생각보다 코드도 굉장히 간단하고 연결하는 것도 어렵지 않습니다. 환경은 라즈베리파이(라즈비안 os), 그리고 와이파이 한개, 윈도우10 피시 한대 입니다. 먼저 사전에 두 기기가 네트워크로 연결되어 있는지 확인해봅시다. 핑 테스트가 완료 되었으면 라즈베리파이에 서버 코드를 돌려봅시다. 서버 코드 import _thread import socket end = 0 print("안녕하세요") def threaded(client_socket, addr): print('Connected by: ', addr[0], ':', addr[1]..
검색 기록을 만들 일이 있어서 코틀린으로 sqlite를 쓸 일이 생겼다. 일단 코드부터 보면 package com.connple.weat.sqlite import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper import android.provider.BaseColumns // sql 헬퍼 생성 class SearchSQLiteHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { override fun onCreate(db: SQ..
많은 Api에서 안드로이드 앱의 KeyHash를 요구한다. Kakao map Api, naver Api 등등.... KeyHash를 생성하는 소스코드이다. @RequiresApi(Build.VERSION_CODES.P) fun getKeyHash() { try { val info = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNING_CERTIFICATES) val signatures = info.signingInfo.apkContentsSigners val md = MessageDigest.getInstance("SHA") for (signature in signatures) { val md: MessageDigest md = M..
안드로이드 9.0 파이 이상에서는 https의 사용을 강제하기 때문에 생기는 에러 네트워크 설정을 변경해주면 해결 가능하다. 1번 방법 res/xml/network_security_config.xml 생성 xml 폴더가 없을 시 새로 생성하기 api.xxx.com 그 후 Manifest에 이 xml 파일을 networkSecurityConfig 파일로 지정해준다. 2번 방법 Manifest 파일에 위의 코드를 추가한다. 두 방법의 차이는 아직 잘 모르겠다.