Download presentation
Presentation is loading. Please wait.
Published by동현 여 Modified 8년 전
1
IT CookBook, Android Studio 를 활용한 안드로이드 프로그래밍 Copyright© 2015 Hanbit Academy, Inc. All rights reserved. 14. 서비스와 브로드캐스트 리시버
2
Page 2 학습목표 Copyright© 2015 Hanbit Academy, Inc. All rights reserved. 서비스의 개념을 파악한다. 앱을 종료해도 음악이 계속 나오는 서비스를 만든다. 브로드캐스트 리시버의 개념을 파악한다. 배터리 방전 시 동작하는 앱을 작성한다.
3
Page 3 차례 Copyright© 2015 Hanbit Academy, Inc. All rights reserved. 01 서비스 02 브로드캐스트 리시버 03 콘텐트 프로바이더
4
Page 4 1. 서비스 [1/13] 서비스 (Service) 일반적으로 화면 없이 동작하는 프로그램을 뜻함 백그라운드 프로세스 (Background Process) 라고도 함 액티비티 응용프로그램은 화면 ( 액티비티 ) 이 종료되면 동작하지 않지만 서비스 는 백그라운드에서 실행되므로 화면과 상관없이 계속 동작함
5
Page 5 1. 서비스 [2/13] 서비스 생명 주기
6
Page 6 1. 서비스 [3/13] 안드로이드 프로젝트 생성 프로젝트 이름 : Project14_1 패키지 이름 : com.cookandroid.project14_1
7
Page 7 1. 서비스 [4/13] activity_main.xml 수정 버튼 2 개를 생성하고 id 는 btnStart, btnStop 으로 함
8
Page 8 1. 서비스 [5/13] Java 코드 작성 및 수정 Service 클래스의 상속을 받는 MusicService 클래스 정의
9
Page 9 1. 서비스 [6/13] Java 코드 작성 및 수정 onCreate( ), onDestroy( ), onStartCommand( ) 메소드 안에 로그를 남기도록 코딩
10
Page 10 1. 서비스 [7/13] MusicService 클래스에 음악을 시작하고, 정지하는 코드 추가 res 폴더 아래에 raw 폴더를 생성 MP3 파일을 하나 복사 전역변수로 MediaPlayer 변수 1 개 선언 onStartCommand( ) 메소드에 MP3 파일을 시작하는 코드를 추가 onDestroy( ) 메소드에 음악을 중지시키는 코드를 추가
11
Page 11 1. 서비스 [8/13] 메인 Java 코드 완성 MusicService 클래스를 적용할 Intent 변수 1 개와 Button 변수 2 개를 전역변수로 선언 인텐트 변수를 생성하면서 MusicService 클래스를 생성자에 넘김 activity_main.xml 의 버튼 2 개를 버튼 변수에 적용시킴 을 클릭하면 startService( ) 를 호출하고 로그를 남김 를 클릭하면 stopService( ) 를 호출하고 로그를 남김
12
Page 12 1. 서비스 [9/13] AndroidManifest.xml 을 열고 안에 서비스 등록
13
Page 13 1. 서비스 [10/13] 프로젝트 실행 및 결과 확인 로그 화면을 보기 위한 로그캣 (LogCat) 화면이 보이지 않으면 Android Studio 메뉴 [Tools]-[Android]-[Android Device Monitor] 를 선택
14
Page 14 1. 서비스 [11/13] 프로젝트 실행 및 결과 확인 를 클릭 Filter Name 에는 임의의 이름을 넣고, by Log Tag 에 “ 서비스 테스트 ” 를 입력
15
Page 15 1. 서비스 [12/13] 프로젝트 실행 및 결과 확인 을 클릭하면 음악이 재생되는지 확인 후 로그캣 확인 를 누르고 음악이 중지되면 로그캣 확인
16
Page 16 1. 서비스 [13/13]
17
Page 17 2. 브로드캐스트 리시버 [1/10] 브로드캐스트 리시버 (BR, Broadcast Receiver) 안드로이드는 문자 메시지 도착, 배터리 방전, SD 카드 탈부착, 네트워크 환경 변화 등이 발생하면 방송 (Broadcast) 신호를 보내는데, 이런 신호를 받아서 처리하는 것이 리시버임 브로드캐스트 리시버의 대표적인 응용은 배터리 상태 확인
18
Page 18 2. 브로드캐스트 리시버 [2/10] 안드로이드 프로젝트 생성 프로젝트 이름 : Project14_2 패키지 이름 : com.cookandroid.project14_2 디자인 및 편집 배터리 상태에 따라 변하는 이미지 5 개를 /res/drawable-hdpi 에 복사
19
Page 19 2. 브로드캐스트 리시버 [3/10] activity_main.xml 수정 이미지뷰 1 개와 에디트텍스트 1 개를 생성, id 는 ivBattery, edtBattery 로 함
20
Page 20 2. 브로드캐스트 리시버 [4/10] Java 코드 작성 및 수정 ImageView 변수 1 개와 EditText 변수 2 개를 전역변수로 선언 activity_main.xml 의 위젯 2 개를 변수에 적용시킴
21
Page 21 2. 브로드캐스트 리시버 [5/10] onCreate( ) 밖에 BR 객체 생성 onReceive( ) 메소드 인텐트의 액션이 ACTION_BATTERY_CHANGED 인 경우 다음을 처리 인텐트의 Extra 에서 배터리의 잔량을 추출 그에 따라 잔량을 표시하고 배터리 이미지를 변경 인텐트의 Extra 에서 배터리의 전원 연결 상태를 추출한 후 표시
22
Page 22 2. 브로드캐스트 리시버 [6/10] onPause( ), onResume( ) 를 자동완성 onResume( ) 메소드 : 인텐트 필터를 생성하고 ACTION_BATTERY_CHANGED 액션을 추가한 후 BR 에 등록 onPause( ) 메소드 : 등록된 BR 을 해제
23
Page 23 2. 브로드캐스트 리시버 [7/10] 프로젝트 실행 및 결과 확인 명령 프롬프트를 열고 “telnet localhost 5554” 를 입력
24
Page 24 2. 브로드캐스트 리시버 [8/10] 프로젝트 실행 및 결과 확인 power capacity 5 : 배터리 잔량 변경을 5% 로 변경 power ac off : 어댑터 연결을 뺀 것이므로, 배터리 부족 경고가 나옴
25
Page 25 2. 브로드캐스트 리시버 [9/10] 배터리 관련 명령
26
Page 26 2. 브로드캐스트 리시버 [10/10]
27
Page 27 3. 콘텐트 프로바이더 콘텐트 프로바이더 (Content Provider) 안드로이드는 보안상 앱에서 사용하는 데이터를 외부에서 접근할 수가 없음 파일이나 데이터베이스를 외부 앱에서 사용하도록 하려면 콘텐트 프로바이더 (Content Provider : 줄여서 CP) 를 만들어서 외부로 제공 URI(Uniform Resource Identifier) URI 는 콘텐트 프로바이더에서 제공하는 데이터에 접근하기 위한 주소 URI 는 “content:// 패키지명 / 경로 / 아이디 ” 형식으로 지정
28
Page 28 3. 콘텐트 프로바이더 ▶ 안드로이드 제공 콘텐트 프로바이더 [1/7] 안드로이드에서 제공하는 CP 의 사용
29
Page 29 3. 콘텐트 프로바이더 ▶ 안드로이드 제공 콘텐트 프로바이더 [2/7] 안드로이드에서 제공하는 주요한 CP 와 URI
30
Page 30 3. 콘텐트 프로바이더 ▶ 안드로이드 제공 콘텐트 프로바이더 [3/7] 안드로이드에서 통화기록을 가져오는 예제 AVD 에서 통화 버튼을 눌러서 통화 기록을 몇 건 남겨놓음 통화 기록에 접근하기 위해 위에 AndroidManifest.xml 의 다음 코드를 추가하여 접근 권한을 줌
31
Page 31 3. 콘텐트 프로바이더 ▶ 안드로이드 제공 콘텐트 프로바이더 [4/7] 안드로이드에서 통화기록을 가져오는 예제
32
Page 32 3. 콘텐트 프로바이더 ▶ 안드로이드 제공 콘텐트 프로바이더 [5/7] 안드로이드에서 통화기록을 가져오는 예제 Java 코드 (1/2)
33
Page 33 3. 콘텐트 프로바이더 ▶ 안드로이드 제공 콘텐트 프로바이더 [6/7] 안드로이드에서 통화기록을 가져오는 예제 Java 코드 (2/2)
34
Page 34 3. 콘텐트 프로바이더 ▶ 안드로이드 제공 콘텐트 프로바이더 [7/7]
35
IT CookBook, Android Studio 를 활용한 안드로이드 프로그래밍 Copyright© 2015 Hanbit Academy, Inc. All rights reserved.
Similar presentations