간단한 앱 만들기(QR리더, 환율 계산)
QR 코드를 이용하여 음악 듣기 [QR리더 만들기]
1. 버튼과 웹뷰를 만들기
- 안드로이드 매니페스트에 인터넷 사용과 진동 허가 발생 설정하기 : permission:INTERNET, permission:VIBRATE
cf)매니페스트 설명 :
○ <application>과 동일한 단계에 삽입. 예)<application></application><uses-permission ~~ />
○ 주로 사용하는 퍼미션(허가)들 - 사용예) android.permission.INTERNET
● 인터넷 : INTERNET
● 캘린더(읽기, 쓰기) : READ_CALENDAR, WRITE_CALENDAR
● 주소록(읽기, 쓰기) : READ_CONTACTS, WRITE_CONTACTS
● 재부팅 : REBOOT
● MMS(수신) : RECEIVE_MMS
● SMS(수신) : RECEIVE_SMS
● 상태표시줄 : STATUS_BAR
● 진동 : VIBRATE
● 알람 : WAKE_LOCK
● 통화(일반, 긴급) : CALL_PHONE, CALL_PRIVILEGED
● 카메라 : CAMERA
● 플래시 : FLASHLIGHT
● 네트워크 상태(변경, 접근) : CHANGE_NETWORK_STATE, ACCESS_NETWORK_STATE
● 와이파이 상태(변경, 접근) : CHANGE_WIFI_STATE, ACCESS_WIFI_STATE
● 배터리 : BATTERY_STATS
● 블루투스 : BLUETOOTH
● GPS : ACCESS_FINE_LOCATION
- [Gradle Scripts] - [build.gradle(Module: app)]에 zxing 라이브러리 입력. dependencies에 compile 추가
- onActivityResult() : 안드로이드에서 제공하는 기본 메소드, 액티비티 간에 이동할 때 사용. 예)A에서 B로 갔다가 다시 A로 넘어올 때 사용.
+ https://developer.android.com/training/basics/intents/result?hl=ko
6.11 구글의 환율을 이용하여 환전하기 : 간단하게 레이아웃을 만들고 이벤트 처리 확인하기 <- '이벤트'와 '비동기' 이용하기
1. 이벤트 이용
예시) implements View.OnClickListener,
@Override
public void onClick(View v){},
convert.setOnClickListener(this);
2. 비동기 이용 : http://free.currencyconverterapi.com/api/v5/convert?q=USD_KRW&compact=y 이용
- IO, JSON, 비동기를 사용해서 환율을 얻기(웹에서 데이터를 가져올 때 비동기 사용)
1. 야후에서 제공하는 환율 정보 즉, 웹에서 제공하는 환율을 얻으려면 IO를 이용해야 함.
2. IO를 이용하여 String으로 가져오고, String을 JSON 객체로 바꿔서 필요한 정보 얻기.
=>
1. JSON으로 제공되는 정보를 저장하기 위하여 클래스 생성 : 저장과 전달용으로 사용할 목적
2. IO를 이용하여 문자열을 가져옴.
- 야후 주소를 찾고 연결
- 야후 주소지에 빨대를 꽂음
- 빨대에서 한 줄식 읽어서 전체 문자열을 붙임
- 전체 문자열을 JSON 객체로 바꿈 : 문자열 자체를 바로 파싱하기 어려우므로 문자열을 JSON객체
로 바꾸는 것.
- JSON 객체에서 원하는 정보를 찾음
3. 웹에서 데이터를 가져올 때 비동기 사용.
- execute()를 호출하면 자동으로 비동기의 메서드 onPreExecute(), 'doInBackground()'<- 비동기
의 핵심, onPostExecute()를 순서대로 호출함.
- onPostExecute()는 비동기 작업에서 얻은 결과는 액티비티(Activity)에 넘겨주여야 함.
그리고 액티비티는 다시 결과값을 뷰(View)에 뿌려주어야 함.
※ 비동기도 다른 하나의 서브 쓰레드이기 때문에 액티비티의 화면에 직접 접근할
수 없으므로 UI쓰레드(runOnUiThread())를 이용해야 함.