본문 바로가기
  • 일하면서 배운 내용 끄적이는 블로그

안드로이드5

안드로이드 앱 내에서 apk 파일 설치하기 현재 작업중인 앱이 로그인 시 VPN이 연결되어야 하는데고객사에서 사용하는 VPN이 라이브러리를 추가 하고 apk 파일도 별도로 설치해야함.. 근데 애초에 VPN이 연결이 안되면 사이트 접속이 안되니 설치페이지같은것도 못쓰고apk 파일 자체를 프로젝트 안에다가 넣어놓고앱 실행 시 설치여부 확인해서 없으면 설치하는 식으로 작업했다.  먼저 apk 파일 위치는 src/main/res/raw파일 확장자는 처음에 .apk로 붙였는데 그러면 나중에 R.raw.대충파일명.apk로 인식이 안돼서 _apk로 수정 대충 나머진 설치가 순차적으로 여러개 진행돼서 필요한거고 apk 설치는 vpnManager.installApk(R.raw.****vpn_apk, Common.VPN_FILE_NAME, new CompleteC.. 2024. 11. 28.
Firebase 클라우드 메시징 기존에 HTTP를 사용하다가 HTTP V1으로 마이그래이션 해서 모바일 푸쉬 알람이 전부 안돼서 수정.. 처음 해봐서 정리하면서 진행했다  먼저 https://firebase.google.com/?hl=ko 에 접속한 다음, 구글 로그인 진행하고 우측 상단에 Go to console 눌러준다  여기서 새 프로젝트 추가해주고  추후 아이폰도 작업 해야할거같은데 일단 안드로이드 클릭...  패키지 이름은 반드시 일치해야함 안드로이드 스튜디오 열어서 build.gradle(:app)에 applicationId 확인 다음은 버튼 눌러서 json 파일 다운로드받고 저 위치에 넣어주면 된다  이것도 그냥 따라서 진행하면 됨 build.gradle(:app)에apply plugin: 'com.android.appli.. 2024. 10. 4.
패러미터로 인터페이스 전달하기 코드를 짜다보니 이후 실행할 함수 안에서 다른 함수를 실행한다던지아니면 멀티스레드를 사용할때 예외처리를 한곳에서 하고싶은데 그냥 Exception을 던지면 안될때가 있었다. 그럴때 사용한 방법이 인터페이스를 하나 선언해서, 그걸 패러미터로 넘겨주는 방식이다 이런식으로 인터페이스를 하나 선언하고(해당 인터페이스는 다이얼로그가 종료될때 실행될 함수를 전달하기위해 만들었다) 그런 다음 패러미터로 전달받아 실행한다. 안에 들어갈 함수는 저런식으로 선언하면 된다. 참고로 지금처럼 인터페이스에 함수가 하나뿐이라면이렇게 람다 표현식으로 써도 된다(Java 8 이상) 2024. 9. 10.
WebView(웹뷰) 로만 접근 가능하게 만들기 User-Agent 하이브리드 모바일 앱(앱 + 웹)에서 웹 부분은 브라우저에서 url을 직접 치고 접근이 가능하다. 이때 필요에 의해서 앱에서만 접근이 가능하게끔 바꿀 수 있다 나같은 경우 url로 로그인 페이지에 접근해서http://대충홈주소/login.jsp?enc_id=인코딩된_아이디값 치면 접속이 돼버리는 문제가 생겨서 그냥 브라우저에서 접근을 막았다. 해당 접근을 막는 방법은 모바일 서버에서 request의 User-Agent 값을 확인하는 것이다 User-Agent는 간단히 말해 내가 어떤 OS를 쓰고 있고, 버전은 어떤 버전인지 웹 브라우저의 정보는 어떤 것인지 등을 담고 있는 번호판 같은 개념이라고 한다.String userAgent = request.getHeader("User-Agent"); 해당 값을 .. 2024. 7. 17.
SharedPreferences SharedPreferences는 안드로이드 앱에서 간단한 키-값 쌍 데이터를 저장하기 위한 방식 해당 데이터는 앱을 종료하고 다시 시작해도 유지되며 앱 내에서만 접근 가능 주로 사용자 설정, 로그인 정보, 사용자의 행동기록등을 저장 다만 대용량 데이터나 보안이 필요한 데이터는 저장하지 않는것을 권장 또한 해당 데이터들은 앱끼리 공유가 안됨 별도 로직 필요 저장// SharedPreferences 객체 가져오기SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);// SharedPreferences 편집기 가져오기SharedPreferences.Editor editor = shared.. 2024. 6. 14.