이번 포스팅에서는 안드로이드앱에서 REST 요청을 하는 방법을 다룹니다. 웹브라우저의 주소창에 REST 요청 주소를 입력하여 JSON 응답을 받았던 것처럼 동작하는 앱을 구현해보도록 하겠습니다. Flickr API 사용 해보기http://webnautes.tistory.com/459 Android에서 REST 요청 후 JSON 응답 받기http://webnautes.tistory.com/462 Android에서 JSON 파싱하여 ListView에 출력http://webnautes.tistory.com/471 ListView 아이템 클릭하면 이미지 다운로드해서 보여주기http://webnautes.tistory.com/472 최초 작성 - 2014.06.30최종 업데이트 - 2017.12.21 UI 디자인..
안드로이드앱에서 사진 검색해서 다운로드 받을 수 있는 웹서비스를 찾다가 Flickr을 사용해보았습니다.앞으로 4개의 포스팅을 통해 flickr API를 사용하여 안드로이드 앱에서 사진 검색을 구현한 과정을 다룹니다. Flickr API 사용 해보기http://webnautes.tistory.com/459 Android에서 REST 요청 후 JSON 응답 받기http://webnautes.tistory.com/462 Android에서 JSON 파싱하여 ListView에 출력http://webnautes.tistory.com/471 ListView 아이템 클릭하면 이미지 다운로드해서 보여주기http://webnautes.tistory.com/472 flickr API( https://www.flickr.co..
Places API Web Service를 이용하여 현재 위치 주변에 있는 음식점 같은 장소 정보를 획득하여 주변에 위치를 아래 화면처럼 빨간색 마커로 출력해줍니다. 마커 하나를 선택하면 해당 장소의 이름과 주소를 정보 창에 보여주는데 이 정보를 다른 액티비티로 전송하는 것을 구현해보았습니다. 해당 정보 창을 선택하면 정보 박스에 있던 해당 정보를 새로운 액티비티에서 보여줍니다. 프로그래밍은 다음 포스팅의 코드를 기반으로 작성했습니다. Places API Web Service를 사용하여 Android Google Map에 현재 위치 주변의 음식점 표시하기http://webnautes.tistory.com/1080 onMapReady 메소드에서 정보 창을 클릭시 인텐트를 이용하여 새로운 액티비티 실행시 정..
“The virtual device got no IP address” 에러 메시지 보여주며 GenyMotion의 가상 디바이스가 실행되지 않는 현상을 해결하는 방법입니다. 최종 업데이트 - 2018. 5. 25 1. VirtualBox의 메뉴에서 파일 > 호스트 네트워크 관리자를 선택합니다. 2. 생성되어 있는 어댑터의 이름을 확인하고 삭제를 클릭하여 모두 지워줍니다. 2-1. 뒤에 # 숫자가 붙지 않은 VirtualBox Host-Only Ethernet Adapter 이름이 있었다면 4번을 진행합니다.2-2. VirtualBox Host-Only Ethernet Adapter #2처럼 뒤에 숫자가 붙은 이름만 있다면 3번을 진행합니다. 3. 호스트 네트워크 관리자에서는 VirtualBox Host-O..
Genymotion에서 Google Map API을 가지고 작성한 Android 앱을 테스트하는 방법을 소개합니다. Google Maps Android API를 이용하여 앱 제작하는 방법은 아래 포스팅을 참고하시기 바랍니다. Google Maps Android API 사용 방법 및 예제http://webnautes.tistory.com/647 Android Google Map에 현재 위치 표시하기( FusedLocationProviderClient 사용)https://webnautes.tistory.com/1249 Genymotion을 설치하는 방법은 다음 포스팅을 참고하세요. Genymotion 설치 및 Android Studio와 연동하여 사용하는 방법http://webnautes.tistory.co..
strings.xml 파일에 문자열 서식을 지정하여 ArrayList에 저장되어 있는 문자열들을 TextView에 출력하는 예제입니다. 앱의 레이아웃은 TextView만 있는 간단한 구조입니다. 우선 임의로 ArrayList에 다음처럼 데이터를 입력했습니다. for (int i = 0; i < 20; i++) { HashMap hashMap = new HashMap(); hashMap.put(TAG_ID, "id " + i); hashMap.put(TAG_NAME, "name " + i); hashMap.put(TAG_ADDRESS, "address " + i); mArrayList.add(hashMap); } strings.xml 파일에서 다음처럼 TextView에 출력할 문자열의 서식을 지정해줍니다...
16진수 문자열과 바이트 배열간의 변환하는 방법을 소개합니다. String 타입의 변수 hexString에 16진수 문자열 01020304FF11을 대입합니다. String hexString = "01020304FF11"; hexStringToByteArray 메소드를 사용하면 16진수 문자열을 바이트 배열 ByteArray로 변환합니다.byte[] ByteArray = hexStringToByteArray(hexString); 다음과 같이 바이트 배열에 들어가게 됩니다. { 0x01, 0x02, 0x03, 0x04, 0xFF, 0x11} byteArrayToHexString 메소드를 사용하면 다시 16진수 문자열로 변환할 수 있습니다. String str = byteArrayToHexString(Byt..
Android KitKat(4.4) 이하 버전에서 Google Map관련 API를 사용한 앱을 실행하려 할 경우 Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException 에러가 나거나com.tistory.webnautes.googlemap E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.tistory.webnautes.googlemap, PID: 13179java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvid..
AsyncTask를 이용하여 URL 주소로부터 동영상 다운로드하는 작업을 백그라운드 스레드에서 수행하면서 다운로드 진행사항을 프로그레스 다이얼로그에 보여주기 위해서 UI 스레드에 요청하는 과정을 아래 포스팅에서 소개했습니다.[Android/개념 및 예제] - 안드로이드 개념 및 예제 - AsyncTask AsyncTask 실행 중, 화면 회전시 문제점위 포스팅에서 소개한대로 하면 문제 없이 동작할 것처럼 보이지만 디바이스의 화면 회전시 IllegalArgumentException라는 예외가 발생합니다. 왜냐하면 디바이스의 화면이 회전할 때, 기존 Activity 인스턴스가 destroy되고 새로운 Activity 인스턴스가 생성되는데 이때 기존 Activity 인스턴스에서 생성되었던 AsyncTask에 ..
다이얼로그(dialog)는 전체 화면을 다 채우지 않고 일부 화면만 가리는 윈도우로, 사용자가 예/아니오 같은 선택을 하거나 추가적인 정보 입력을 하기를 기다립니다. 사용자가 응답하기 전까지는 화면에서 사라지지 않고 대기하며 프로그래밍 코드도 잠시 대기상태가 됩니다.(modal event) 여기에서는 Dialog의 서브클래스인 AlertDialog로 만들 수 있는 다이얼로그 예제들을 보여줍니다.메시지와 예 또는 아니오리스트입력창(EditText)다중 선택 리스트단일 선택 리스트Custom Layout(로그인창)DialogFragment( Activty에서 호출한 경우 스트링을 반환받는 방법)DialogFragment( Fragment에서 호출한 경우 스트링을 반환받는 방법) AlertDialog의 구성요..