스마트웹앱콘텐츠전문가/안드로이드

간단한 앱 만들기(QR리더, 환율 계산)

9D4U 2018. 6. 22. 18:37
728x90
반응형

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())를 이용해야 함.

728x90