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

카메라 인텐트

[비디오 녹화와 이미지 캡처] ※안드로이드 장치의 카메라를 액세스 할 때는 카메라 하드웨어가 있는지 코드에서 미리 확인. 카메라의 유무는 PackageManager.hasSystemFeature()메서드를 호출하여 확인. + 전면 카메라의 유무 확인을 할 때는 PackageManager.FEATURE_CAMERA_FRONT 상수를 메서드 인자로 전달. 후면 ~ PackageManager.FEATURE_CAMERA cf) 종류 불문하고 카메라가 있는지 여부만 확인 할 떄는 PackageManager.FEATURE_CAMERA_ANY 상수를 사용. ○ 비디오 캡쳐 인텐트 호출 : 안드로이드에 내장된 비디오 녹화 인텐트는 MediaStore.ACTION_VIDEO_CAPTURE 액션 타입으로 나타냄. cf)인..

스토리지 액세스 프레임워크

[안드로이드 스토리지 액세스 프레임워크를 사용해서 클라우드 기반의 스토리지(구글 드라이드 등)에 파일을 열고, 생성하고, 저장하는 애플리케이션 구현하기] 1. 스토리지 액세스 프레임워크 : 클라우드 기반의 스토리지 액세스를 안드로이드 애플리케이션에 통합시키는 절차를 수월하게 해줌. - 사용자에게 사용하기 쉬운 인터페이스 제공 = 안드로이드 애플리케이션의 스토리지 서비스(=문서 제공자)가 호스팅하는 파일들의 브라우징, 삭제, 생성을 쉽게 할 수 있음 - 사용(안드로이드 4.4 ~)onActivityResult()[스토리지 액세스 프레임워크 인텐트]○ ACTION_OPEN_DOCUMENT : 장치에 구성된 문서 제공자에서 파일을 선택할 수 있도록 사용자에게 피커 사용자 인터페이스 액세스를 제공함. 선택된 파..

[파이어베이스]클라우드 메시지

파이어베이스에서 제공하는 클라우드 메시지를 사용하여 앱에 알람을 보내는 동작을 구현하려고 합니다. 시중에 나온 책들의 설명을 보시고, 아무런 오류 없이 제대로 동작이 구현된다면 다행입니다만, 직접 구현해 본 결과, 당시 때 안드로이드 버전 및 라이브러리 버전을 사용해서 반영되어 있는 것이어서몇몇 오류가 나서 제대로 동작을 구현하기 어려움이 있었습니다. 따라서, 이 오류를 해결함에 있어서 동작을 구현할 수 있었는데, 발생 했던 오류와 해결 방법에 대해서 포스팅 하겠습니다. 1. 안드로이드 스튜디오에서 안드로이드 버전을 어떤 것을 선택하느냐에 따라 다르겠지만, 앱을 디버그 했을 때, 'Conflict with dependency 'com.android.support:support-annotations' in..

[안드로이드 본격 앱 프로젝트]

※ 'ListView', 'GridView', '안드로이드 맵'을 사용하여 화면 설계.※'이벤트' 처리※리스트뷰와 그리드뷰 사용 시, 화면과 데이터를 연결해주는 '어댑터' 필수※I/O, 쓰레드, 핸들러 1. 이미지 준비 : [drawable]디렉토리에 여러나라 국기 이미지를 넣어서 사용.(drawable 디렉토리에 이미지를 넣으면 이미지 고유번호가 int값으로 자동으로 생성됨 -> 'R.drawable.이미지이름'으로 사용가능)2. 화면 레이아웃 : 수직방향으로 설정한 리니어 레이아웃에 텍스트뷰, 이미지뷰, 리스트뷰를 가져다 놓음.3. 리스트 뷰의 아이템 레이아웃 : '어댑터'는 한 아이템의 레이아웃을 이용해 한 국가의 정보를 하나의 아이템에 대입함.4. 리스트뷰 어댑터 : 리스트뷰에 데이터를 넣어서 화..

안드로이드 스튜디오 유용한 단축키 모음

※ 컴퓨터 설정에 따라서 간혹, 오른쪽 기능키와 왼쪽 기능키의 설정이 다른 경우가 있으므로 확인 필요. ○ 스튜디오에서 생성자나 오버라이드 메서드 및 게터,세터 생성 : ALT + INSERT ○ 오버라이드 메서드 생성 : CTRL + SHIFT + O ○ 임플리먼트 메서드 생성 : CTRL + SHIFT + I ○ 모든 경로(Path)에서 해당 결과 찾기(검색) : CTRL + SHIFT + F ○ 해당 함수 또는 변수가 정의 되어 있는 위치로 이동 : CTRL + B ○ 전체에서 해당 검색 내용 찾기 : SHIFT + SHIFT (= SHIFT 두번 누름) ○ (해당 함수 또는 변수)이름 바꾸기 : SHIFT + F6(정의된 부분 뿐만이 아니라 호출되어 있는 부분까지 변경된 이름으로 수정됨) ○ 자동..

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

QR 코드를 이용하여 음악 듣기 [QR리더 만들기]1. 버튼과 웹뷰를 만들기- 안드로이드 매니페스트에 인터넷 사용과 진동 허가 발생 설정하기 : permission:INTERNET, permission:VIBRATEcf)매니페스트 설명 :○ 과 동일한 단계에 삽입. 예)○ 주로 사용하는 퍼미션(허가)들 - 사용예) android.permission.INTERNET● 인터넷 : INTERNET● 캘린더(읽기, 쓰기) : READ_CALENDAR, WRITE_CALENDAR● 주소록(읽기, 쓰기) : READ_CONTACTS, WRITE_CONTACTS● 재부팅 : REBOOT● MMS(수신) : RECEIVE_MMS● SMS(수신) : RECEIVE_SMS● 상태표시줄 : STATUS_BAR● 진동 : V..

간단한 앱에 사용되는 안드로이드 이론1

6.7 결과를 받는 액티비티를 이용하여 바이오리듬 그리기.- 액티비티 2개 만들기 : 메인 액티비티에서 데이터 입력 액티비티 이동(?)해주는 버튼 터치 -> 한 액티비티(데이터 입력 액티비티)에 데이터 입력 -> 메인 액티비티에 입력한 데이터 전달 후 메인 액티비티가 입력받은 정보로 바이오리듬 그리기. ※액티비티 간의 이동은 인텐트를 사용(문자열이나 Bundle을 이용해 액티비티간의 정보를 전달 할 수 있음) startActivityForResult()로 메인 액티비티에서 다른 액티비티로 이동가능. 작업이 끝나고 메인으로 돌아가려고 할 떄, setResult()를 호출하고 자신의 액티비티는 finish()로 끝냄. 데이터 결과를 갖고 메인에 돌아오면 onActivityResult()가 호출됨. 메인에서 ..

사용자 정의뷰

[사용자 정의뷰 만들기] -> 레이아웃에 사용자 정의뷰를 설정가능View 생성 방법- 자바에서 사용하는 new 방법- 안드로이드에서 주로 사용하는 findViewById()방법 View를 상속해 사용자가 정의한 간단한 뷰를 만들어 보기.1. 상속의 개념 이해2. invalidate() 호출 -> onDraw() 실행 3. 간접호출 결과 도출 [SeekBar]에 반응해서 원의 크기 변경하기- 생성자 오버로딩, 이벤트, 캔버스를 익힘

안드로이드 기본 앱

[안드로이드 기본 앱]○ 이벤트 처리○ 어댑터○ 1초마다 움직이는 초침○ 쓰레드○ 핸들러○ 파싱을 가져오기 위한 Async(비동기)○ IO=> 종합적으로 응용 ※이벤트를 처리하는 중요 방법 다섯 가지 살펴보기1. 액티비티가 이벤트 핸들러 객체가 되는 경우2. 중첩 클래스 사용하기 : 클래스 안에 클래스-Nested class 액티비티 안에 핸들러 객체를 멤버 필드로 갖는 형태.3. 여러 개의 중첩 클래스 사용하기 : 클래스 안에 클래스-Nested Class 액티비티에 여러개의 핸들러 객체를 사용 예) 각 버튼이 다른 버튼과 관계없이 자신만을 위한 특정 행위를 하고 싶을 떄.4. 익명 내부 클래스(Anonymous Nested Class) : 액티비티에 리스너를 implements한 핸들러 객체를 만들지..