728x90
반응형
FCM을 통해 푸시알림을 전송을 하는데
기기 고유의 토큰값이 존재합니다.
이 토큰값을 알고있다면 내가 원하는 기기에게만 푸시알림을 전송 할 수 있습니다.
public void getToken(){
//토큰값을 받아옵니다.
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
return;
}
////////////////////토큰이 계속 초기화가 되기때문에 sharedPreferences로 저장하여 초기화 방지////////////////////
sharedPreferences = getSharedPreferences("sFile1",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
token = task.getResult().getToken(); // 사용자가 입력한 저장할 데이터
editor.putString("Token1",token); // key, value를 이용하여 저장하는 형태
editor.commit();
////////////////////토큰이 계속 초기화가 되기때문에 sharedPreferences로 저장하여 초기화 방지////////////////////
}
});
}
getToken 메소드를 정의하여 줍니다.
그 후 onCreate안에
SharedPreferences sharedPreferences = getSharedPreferences("sFile1",MODE_PRIVATE); //저장된 토큰을 불러오기 위한 셋팅
token = sharedPreferences.getString("Token1",token); //key값과 value값으로 구분된 저장된 토큰값을 불러옵니다.
이 코드도 같이 정의해줍니다.
굳이 SharedPreferences를 쓸 필요가 있나 싶기도합니다.
다른분들은 아닐수도 있겠지만 저같은 경우는 토큰값을 WebView를 통해서 웹서버로 보내줍니다.
푸시알림을 웹에서 처리해주기 때문이죠.
mWebView.loadUrl("띄우고자하는 웹의 주소?userTokenId="+token);
이런식으로 토큰값을 전달해줍니다.
근데 토큰값이 저장하고 WebView를 통해 전달되기 직전에 null값으로 초기화가 되버리더군요.
그것을 방지하기위해 SharedPreferences를 사용하였습니다.
앱이 꺼져도 저장을 하기위해 미리 방지를 위해
onStop 메소드에도 정의했습니다.
@Override
protected void onStop() {
super.onStop();
// Activity가 종료되기 전에 저장한다.
//SharedPreferences를 sFile이름, 기본모드로 설정
SharedPreferences sharedPreferences = getSharedPreferences("sFile1",MODE_PRIVATE);
//저장을 하기위해 editor를 이용하여 값을 저장시켜준다.
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("Token1",token); // key, value를 이용하여 저장하는 형태
editor.commit();
}
이렇게 토큰값을 저장하여 TextView에도 띄워서 볼 수 있고, 저처럼 웹서버로 전송도 가능합니다.
궁금하신 사항은 댓글 남겨주세요.
728x90
반응형
'Android' 카테고리의 다른 글
안드로이드(andorid) 스튜디오 / KG이니시스(결제) 연동하기. (17) | 2019.10.31 |
---|---|
안드로이드 스튜디오 WebView 경고창 및 확인창 띄우기 (0) | 2019.10.24 |
안드로이드 스튜디오 구글맵을 통한 위도랑 경도만 받아오기 (0) | 2019.10.24 |
FCM 파이어베이스 포그라운드 백그라운드 알림 및 백그라운드 작업처리 (7) | 2019.10.24 |
WebView SSL에러로 인해 흰색페이지에서 멈춰있을때 (0) | 2019.10.24 |
댓글