안드로이드 192

Firebase 설정, firebase콘솔에 앱등록

Firebase 설정 firebase콘솔에 앱등록 -google-services.json 다운받아서 앱에 넣기 매니페스트 token 가져오기 FirebaseInstanceId.getInstance().instanceId .addOnCompleteListener(OnCompleteListener { task -> if(!task.isSuccessful){ Log.w(tag, "getInstanceId failed", task.exception) return@OnCompleteListener } // Get new Instance ID token val token = task.result?.token //Log and toast LogUtil.d(tag, "fcm token : $token") AppAppl..

안드로이드 2022.11.04

[Android] EventBus, RxEventBus 사용법

Event Bus -Fragment1과 Fragment2가 메시지를 주고받는 예제. 1. Gradle추가 compile 'com.squareup:otto:1.3.7' 2.전역에서 같은 객체를 가지고 오기위한 싱글톤인 Global Bus 생성 public class GlobalBus{ private static Bus sBus; public static Bus getBus(){ if(sBus == null) sBus = new Bus(); return sBus; } } 3.이벤트 버스에서 실행 시킬 메서드가 있는 Events 생성 public class Events{ public static class Event1{ private String message; public Event1(String messa..

안드로이드 2022.10.27

[Android] webview onReceivedSslError

webview onReceivedSslError 해당 이슈는 웹뷰를 구현할때에 필히 사용되는 WebViewClient 클래스의 onReceivedSslError 의 처리가 안전하지 않다는 경고가 뜨는 사례입니다. 기존: SSL 오류가 발생해도 무조건 수행 변경: 안전하지 않지만 유저가 진입할지 말지를 결정할 수 있게 함. 유효하지 않은 사이트에 진입할것인지 물어보는 글이 들어가 있으면 된다고합니다. 해결법 1."신뢰하는 보안 인증서가 아닙니다. 계속하시겠습니까?"같은 팝업창을 띄워준 후 사용자가 확인 or 취소로 선택을 하게 해주어야 한다고 되어있습니다. 2.또 다른 해결책은 해당 메소드를 오버라이딩 하지 않거나 handler.cancel(); 로 처리하는 등 proceed() 코드를 없애면 됩니다.

android 10 파일 권한시 open failed: EACCES (Permission denied)

android 10 파일 권한시 open failed: EACCES (Permission denied) 파일 접근 권한에 대한 범위를 세부적으로 관리하고 앱 삭제와 별게로 무분별(?)한 파일 생성을 막기 위한 목적 참조 : https://fusionism.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9Candroid-10-open-failed-EACCES-Permission-denied 안드로이드(android 10) open failed: EACCES (Permission denied) AndroidManifest.xml 파일에 아래 권한을 추가해 주었지만...지속적으로 permission denied 오류가 발생 하였다. java.io...

Android 8.0(오레오) 투명모드 Activity에 screenOrientation값 portrait 에러

Android 8.0(오레오) 투명모드 Activity에 screenOrientation값을 portrait을 걸면 폰이 검은 화면에서 넘어가질 않습니다. IllegalStateException: Only fullscreen opaque activities can request orientation 참조 : https://black-jin0427.tistory.com/38?category=727620 [Android. Error] java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation Android 8.0 (오레오) 업데이트 되면서 기존에 없었던 에러가 발생하는것 같습니다. ㅜㅠ 투명 모드 Acit..

안드로이드 웹뷰 URL 호출시 에러 ERR_CLEARTEXT_NOT_PERMITTED

안드로이드 웹뷰 URL 호출시 에러 ERR_CLEARTEXT_NOT_PERMITTED 폰 OS가 안드로이드9.0 파이이고, API주소, 이미지주소 등 네트워크 경로가 https가 아닌 http로 되어있으면 에러 발생. -안드로이드 9.0파이에서는 https를 사용하도록 강제합니다. 해결방법1 -http -> https로 변경. 해결방법2 해당 서버주소를 http여도 실행되도록 허용해주는 설정. res/xml 에 아래와 같은 xml파일을 만들어 줍니다. res/xml/network_security_config.xml api.xxx.com 그리고 Manifest에 이 xml파일을 config파일로 지정해줍니다. 해결방법2-1 모든경로가 허용되도록 설정. 해결방법3 Android Manfest에서 usesCl..

[Android] Elevation (그림자 효과)

Android Elevation (그림자 효과) elevation은 API 21이상에서부터 적용되는 효과입니다. 해당 View를 Z축으로 이동하여 하단에 그림자가 깔리는 입체적인 효과를 줄 수 있도록 고안된 구글의 머테리얼 디자인입니다. 사용법 http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> 위와 같이 android:elevation에 값을 주면 됩니다. 이 값이 커지면 커질수록 Z축으로 더 멀어져 그림자가 커지게 됩니다. 그림자를 주기 위한 뷰의 BackgroundColor가 불투명이 아닌 어떠한 색을 가지고 있어야 그림자가 생긴다. 두번째로..

[Android] Dependency, Dependency Injection

Android Dependency, Dependency Injection Dependency(의존성) -코드에서 두 모듈 간의 연결 -객체지향언어에서는 두 클래스 간의 관계라고도 말함. -일반적으로 둘 중 하나가 다른 하나를 어떤 용도를 위해 사용함. Dependency가 위험한 이유 -하나의 모듈이 바뀌면 의존한 다른 모듈까지 변경이 이루어지기 때문 -테스트 가능한 어플을 만들 때 의존성이 있으면 유닛테스트 작성이 어려움 -유닛 테스트의 목적 자체가 다른 모듈로부터 독립적으로 테스트하는 것을 요구하기 때문.(Mock 객체로 대체가능) Dependency Injection(의존성 주입)이 필요한 이유 -위 Dependency가 위험한 이유를 해결하기 위해서 사용 -'new'를 사용해 모듈 내에서 다른 모..

안드로이드 2022.10.27

[Android] DI란?, Dagger2 사용법에 대해 알아보자

DI 기본 개념과 Dagger2사용 예제 DI란? Dependency Injection의 약자로 의존성 주입을 의미합니다. 특정 객체의 인스턴스가 필요한 경우 이를 외부에서 생성하여 전달하는 기법. Dagger란? 안드로이드에서 의존성 주입을 구현하기 위해 사용하는 라이브러리 입니다. 예제 - 햄버거 만들기 햄버거(Burger)는 밀빵(WheatBun)과 소고기 패티(BeefPatty)로 이루어져 있습니다. 햄버거 public class Burger{ public WheatBun bun; public BeefPatty patty; public Burger(WheatBun bun, BeefPatty patty){ this.bun = bun; this.patty = patty; } } 밀빵 public cl..

안드로이드 2022.10.27