안드로이드 스튜디오
Android - 미디어 파일 사용 권한 선택 에러
https://donghyeok90.tistory.com/281 Android Studio - 카메라 or 갤러리에서 사진 가져오기 Cheet Sheet 1. fileprovider.xml 만들기 res - xml 에 XML Resource file을 추가 파일명은 fileprovider로 만들고 아래 코드를 복사해 넣는다. 2. Manifest 설정 AndroidManifest.xml에 다음 항목들을 추가해 넣는다. 의 authorities는 자 donghyeok90.tistory.com 이 포스팅에서 다룬 코드가 일부 환경에서는 정상적으로 동작하지 않았다. '앨범에서 가져오기'를 선택하면 미디어 파일 접근 권한 설정을 물어보는 창이 나와야 하는데, 아무것도 나오지 않았다. 로그는 다음과 같이 나왔다...
Android Studio - 카메라 or 갤러리에서 사진 가져오기 Cheet Sheet
1. fileprovider.xml 만들기 res - xml 에 XML Resource file을 추가 파일명은 fileprovider로 만들고 아래 코드를 복사해 넣는다. 2. Manifest 설정 AndroidManifest.xml에 다음 항목들을 추가해 넣는다. 의 authorities는 자신에 맞게 변경한다. android:requestLegacyExternalStorage="true" 3. Cheet Sheet import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivi..
Android Studio - DatePickerDialog/TimePickerDialog 사용법
1. DatePickerDialog btnDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 오늘 날짜 가져오기 Calendar current = Calendar.getInstance(); new DatePickerDialog( EditActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { Log.i("MEMO_APP", "년도 : " + i + ", 월 :"+i1+", 일 :"+i2); //..
Android Studio - Retrofit2를 이용해 API 서버에 요청하기(GET) + RecyclerVeiw 에 표시
1. Retrofit2 라이브러리 HTTP 통신 라이브러리 중 Volley와 함께 가장 많이 사용되는 대표적인 라이브러리 동일 Squareup사의 OkHttp 라이브러리의 상위 구현체 - Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축 됨 Volley는 response로 받은 JSON 파싱을 직접 해줘야 해서 코딩이 길어지는 반면, Retrofit은 자동으로 파싱을 해줘서 더 간단하게 사용할 수 있다. 2. Retrofit2 사용을 위한 설정 인터넷 사용 권한 설정 AndroidManifest.xml에 추가해준다. 안드로이드 에뮬레이터에서 인터넷을 사용하기 위한 설정은 이 포스팅을 참고 dependencies 추가 build.gradle(Module)에 추가해준다. depende..
Android Studio - Retrofit2를 이용해 API 서버에 요청하기(POST)
1. Retrofit2 라이브러리 HTTP 통신 라이브러리 중 Volley와 함께 가장 많이 사용되는 대표적인 라이브러리 동일 Squareup사의 OkHttp 라이브러리의 상위 구현체 - Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축 됨 Volley는 response로 받은 JSON 파싱을 직접 해줘야 해서 코딩이 길어지는 반면, Retrofit은 자동으로 파싱을 해줘서 더 간단하게 사용할 수 있다. 2. Retrofit2 사용을 위한 설정 인터넷 사용 권한 설정 AndroidManifest.xml에 추가해준다. 안드로이드 에뮬레이터에서 인터넷을 사용하기 위한 설정은 이 포스팅을 참고 dependencies 추가 build.gradle(Module)에 추가해준다. depende..
Android Studio 에러 - Emulator is already running
Error while waiting for divice: AVD Pixel 2 API 33 is already running 안드로이드 스튜디오에서 에뮬레이터를 실행하려 하는데 이런 에러가 뜨면서 실행이 안 됐다. 안드로이드 에뮬레이터가 비정상적으로 종료되거나 문제가 있을 때 발생하는 에러라고 한다. 해결법은 에러 메시지에 나와 있는 것처럼 에뮬레이터 경로로 가서 .lock으로 끝나는 파일들을 삭제해주면 된다. .lock 으로 끝나는 파일을 모두 삭제하고 다시 실행하면 정상적으로 동작한다.
Android Studio - Volley 라이브러리 Body와 Header에 데이터 담아서 Request 하는 법
1. Body에 데이터 전달하는 방법 Body에 보낼 JSONObject 객체를 만들고, put 메소드로 객체에 key와 value를 넣어준다. JsonObjectRequest 생성자 3번째 파라미터에 JSONObject 객체를 전달한다. // body에 데이터를 넣는다. JSONObject body = new JSONObject(); try { body.put("source", source); body.put("target", target); body.put("text", text); } catch (JSONException e) { return; } // request 생성자 3번째 파라미터에 body를 전달한다. RequestQueue queue = Volley.newRequestQueue(Main..
Android Studio - Intent 활용 (주소록, 웹, SMS, Email 열기)
// 연락처 선택하는 액티비티 띄우기 // 호출: selectContact(); void selectContact(){ Intent intent = new Intent(Intent.ACTION_PICK); intent.setType(ContactsContract.Contacts.CONTENT_TYPE); startActivity(intent); } // 웹브라우저 실행시키는 인텐트 // 호출 예: openWebPage("http://naver.com"); void openWebPage(String url){ Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } // SMS ..