Android(Java)
-
[ Android ] android wifi 로 debugAndroid(Java) 2023. 8. 3. 16:12
1. 같은 와이파이 2. 먼저 스마트폰을 컴퓨터에 USB로 연결 3. cmd 창에서 5555 포트로 지정 adb tcpip 5555 성공시 나타나는 내용 : restarting in TCP mode port: 5555 4. 이제 USB를 연결해제 그다음 스마트폰의 IP주소를 알아내야 합니다. 알아내는 방법은 다양하므로 몇가지만 알려드린후 넘어가겠습니다. 설정 앱 - 휴대폰 정보 - 상태(또는 네트워크) - IP 주소 설정 앱 - WIFI - WIFI 고급 설정(또는 WIFI 설정) - IP 주소 adb connect :5555 성공시 나타나는 내용 : connected to :5555 5. adb devices 로 연결 상태를 확인할 수 있습니다.
-
[ Android Java ] google firebase sms 인증하기Android(Java) 2023. 6. 23. 15:19
현재 android java 로 개발된 서비스 중인 앱은 sms 인증 방식을 restful api로 서버에 요청하고, 서버에서 aws를 통해 문자를 보내주는 형식으로 전화번호 인증을 하고있다. 저번주에, vpn을 통해 과도한 문자청구가 되고, 백엔드 개발팀이 rate limiting을 통해 악의적인 유저를 블락하려고 해봤으나, 금주에도 동일한 공격이 발생했다. 그래서 FE에서 구글 sms 를 사용하기로 했다. 구글 firebase 는 recapcha 방식을 통해 악의적인 공격을 막아주기 때문이다. 전에 firebase sms auth로 sms 를 사용했을때, 트래킹이 되지않아 현재의 방식으로 개발했는데, vpn을 쓰며 천천히 인증을 계속 돌리는 상황이 막상 닥치니 빨리 구글 인증으로 바꾸는 방식으로 회의..
-
[ Android Java ] Google Oauth : Attempt to invoke virtual method 'android.os.Looper android.content.Context.getMainLooper()' on a null object referenceAndroid(Java) 2023. 5. 31. 15:12
현재 우리 회사에서 서비스 하고있는 플랫폼엔 모두 Oauth가 적용되어있다. 최근 런칭한 서비스를 QA 돌리는중에, 로그아웃하니 처음 연결했던 구글 아이디로만 로그인한다는 QA가 있어서 아차 싶었다. 항상 Oauth를 사용해서 로그인 할때는, 해당 Oauth sdk(위젯)에서 로그아웃을 실행해줘야한다. 룰루랄라 해당 기능에서 로그인 기능을 만들어 놓은 함수 public void googleOauthSignOut() { try { mGoogleSignInClient.signOut() .addOnCompleteListener(this, task -> { mAuth.signOut(); }); gsa = null; }catch (Exception e){ Log.e("signOut error :::;",e.toS..
-
[ Android Java ] The application could not be installed: SHELL UNRESPONSIVEAndroid(Java) 2023. 5. 31. 13:44
테스트 폰을 새로 받아서 기존 프로젝트를 빌드해보는데 The application could not be installed: SHELL UNRESPONSIVE 라는 에러가 떴다. adb devices 명령어를 쳐봐도 제대로 연결이 되어있다고 나오는데, cache를 제거하고 새로 시작하니 정상작동했다. RN 을 할때는 ./gradlew clean을 밥먹듯이 썼는데, 안드로이드 스튜디오를 사용하면서 캐시나 프로젝트 클린을 자주 사용하지 않는 것같다.
-
[ Android Java ] webView에서 해당 webview에 대한 정보 가져오기Android(Java) 2023. 5. 23. 11:32
WebViewClient를 extends 한 webview 클래스를 만들어서 공통으로 사용중이다. private class CustomWebViewClient extends WebViewClient { @Override public void onPageStarted(android.webkit.WebView webview, String url, Bitmap favicon) { webview.setVisibility(webview.INVISIBLE); } @Override public void onPageFinished(android.webkit.WebView view, String url) { spinner.setVisibility(View.GONE); view.setVisibility(web.VISIBL..
-
[ Android Java ] java.lang.IllegalArgumentException: 패키지명: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.Android(Java) 2023. 5. 22. 09:23
에러 내용을 읽어보면 31 버전부터는 pendingIntent에 mutable 인지 immutable 인지 명시가 되어 있어야 한다고한다. 기존 코드에 FLAG_IMMUTABLE을 추가해줬다. 기존코드 PendingIntent pendingIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT ); 추가후 코드 PendingIntent pendingIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
-
[ Android Java ] 안드로이드 애플리케이션 로그 파일 작성하기Android(Java) 2023. 5. 19. 17:25
앱이 백그라운드에서 돌거나, QA를 하면서 나왔던 에러를 다시 구현할때 어려움이 있어서, 앱내에 로그파일을 남겨야겠다고 생각했다. dev 와 staging에서만 사용하고, release 모드에선 해당 기능을 숨기거나, 앱내 폴더로 숨길 예정이다. 해당 코드는 public class LogFileWriter { private static final String TAG = "LogFileWriter"; private static final String LOG_FILE_NAME = "애플리케이션_log.txt"; public static void writeLogToFile(String message) { String logText = getCurrentTimestamp() + " - " + message + ..
-
[ Android Java ] 앱이 백그라운드에 있을때 한시간에 한번씩 실행 되는 함수 설정Android(Java) 2023. 5. 19. 16:20
한시간에 한번씩 주소록이 동기화 되고 친구가 추가되었으면 좋겠다는 요청사항이 있었다. 앱을 사용중일때, 주소록을 가지고와서 api를 쏘고, room db를 업데이트 하면, 혹시라도 앱이 느려지는 것 처럼 보일까봐, 처음에는 주소록을 가지고 key value 값으로 no sql embeded db에 저장하고나서, 한시간에 한번씩 쏘고 받고 할까도 생각을 해봤는데, 주소록이 업데이트 되었는지 확인하는 로직을 넣으면 어짜피 연락처에 한번은 접근해야된다는 생각으로 백그라운드 일때만 한번씩 주소록을 서버로 쏴주는 식으로 비지니스 로직을 정리했다. public class SplashActivity extends BaseActivity { private static final int REQUEST_CODE = 500..