수능 5일남은 원붕이임


자동출첵 하려는데 안드로이드에서는 마땅한 좋은 방법이 없길래 하나 만들어왔어

앱 장점이라고 하자면 귀찮게 토큰 직접 긁어올 필요 없고 출첵했을때 푸시알림 받을수 있다는 점 정도? 


근데 수능이 다음주라 급하게 짬내서 만드느라 내가 발견 못한 버그가 있을지도 모름... 그건 수능 끝나고 수정할게

같은 이유로 앱 아이콘도 기본값이니까 양해해줘


※안드로이드 5.0 롤리팝 이상에서만 사용 가능함.

--------------------

[설치]

최신 릴리즈 다운로드(Github)


위 링크로 들어가서 가장 위에 있는거

apk파일 다운받고 설치하면 됨

--------------------


1. 사용법


2. 민감한 정보


3. 예상질문


4. 버그 리포트




[1. 사용법]


(배터리 최적화 어쩌구 뜨면 예외앱 허용해주면 돼. 배터리 최적화로 들어가면 슬립당해서 제때 작동 안할까봐 해둔거)

앱을 켜면 이런 창이 뜰거임

호요랩 로그인만 해서 자동으로 토큰 긁어올 수 있게 만들어왔어.

어차피 사용자 폰에서만 읽을 수 있고 휘발성이라 상관없지만 그래도 뭔가 내 토큰 털릴것같고 찝찝하다 하면 그냥 수동등록 해 


암튼 자동등록 누르면


늘상 보던 익숙한 페이지가 뜰거임.

로그인 한 다음에 잊지말고 밑에 <토큰 가져오기> 버튼 꼭 눌러줘

※HoyoLab 앱 열기 버튼은 누르면 안됨. 그냥 출첵 페이지에서 로그인해야됨


이렇게 뜨면 성공.

이제 제대로 등록되었는지 확인하기 위해서 


수동 출석체크 버튼 눌렀을때 


"출석체크 완료!" 또는 "여행자, 이미 출석체크했어~"라고 뜨면 성공한거임. 


만약에 "아직 로그인하지 않았습니다." 라고 뜨면 토큰 등록이 제대로 안된거.

로그인만 하고 토큰가져오기 안눌렀을 가능성이 큰데, 그럴땐 그냥 앱 나갔다가 다시 들어와서 자동등록 다시하면 돼.

그래도 안된다면 토큰값에 오류있는거니까 그럴땐 수동등록을 추천함. 


저기까지 다 됐다면 이제

자동출첵 사용 버튼을 켜주면 됨.

서비스 작동 성공이라는 메시지가 뜨면 정상적으로 스케줄 등록된거야. 


푸시 알림 허용은 켜져있는게 기본값인데, 받기 싫다 하면 꺼도됨


작동시간은 중국 표준시 기준으로 00시 00분 15초, 한국 표준시 기준으로는 01시 00분 15초임.

정시에 안한 이유는 혹여나 호요랩 서버쪽에 트래픽 걸려서 제대로 처리 안될까봐 15초 지연시킨거




[2. 민감한 정보]

이거 쓰면 해킹당하는거 아닌가 하는 사람들이 있을것같아서 씀.

우선 앱이 가져가는 시스템 권한부터 보여줄게

호요랩이랑 통신을 해야하니까 필요한 인터넷, 네트워크 상태 확인 권한 (ACCESS_NETWORK_STATE, INTERNET)

재부팅시에도 자동출첵 유지되어야 하니까 부팅 완료 체크하는 권한 (RECEIVE_BOOT_COMPLETED)

배터리 최적화에 걸리면 제때 출첵 서비스가 작동하지 않을수도 있어서 최적화 예외 요청하는 권한 (REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)

네가지 모두 시스템에 큰 영향을 주지 않아서 따로 사용자 허용 여부 관계없이 앱에서 불러올 수 있는 시스템 권한임.


그리고 서버랑 통신하는 부분

호요랩 외에 다른 외부서버에 아무런 정보도 보내지 않아.
이외에 나가는 연결은 앱 업데이트 여부 확인용으로 깃헙에서 텍스트 긁어오는거 하나임. 서버로 뭔가를 전달하지는 않음.


그리고 등록된 토큰, UID값은 SharedPreference에 저장됨.

이건 앱 외부에서는 접근할 수 없고, 앱 내부에서만 접근가능한 저장소야. 


그러니까 토큰 등록해놨다가 털릴 일은 없음




[3. 예상질문]


Q1. 진짜 내 폰이나 내 계정 해킹 안당해??

A1. 바로 위에서 다 설명했는데, 그래도 영 찝찝하다면 그냥 안쓰면 됨


Q2. 핸드폰 꺼놔도 작동해?

A2. 아니. 출첵 작동하는 시간 (한국기준 새벽1시)에 폰이 꺼져있다면 작동하지 않아. 그 시간에는 폰이 켜져있어야됨.


Q3. 진짜 수능 5일 남겨놓고 저런걸 만들고 앉았다고?

A3.





[4. 버그 리포트]


아까도 말했지만 급하게 만들다보니 디버깅 못한 버그가 있을지도 몰라... 혹시나 쓰다가 버그 발견하면 댓글로 알려주면 가능한 빨리 수정하겠음


이외에도 궁금한거 있으면 댓글로 물어보면 답해줄게


기왕에 만든거 많이많이 써줬으면 좋겠음...