Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Stock
- 자바
- css
- 주식 청약 일정
- 오라클
- JavaScript
- 자바스크립트
- java
- Oracle
- 코드이그나이터
- MYSQL
- IPO
- 주식 청약
- 주식
- linux
- Eclipse
- codeigniter
- Stock ipo
- 6월 공모주 청약 일정
- 공모주
- html
- SQL
- 공모주 청약 일정
- 리눅스
- 공모주 청약
- 7월 공모주 청약 일정
- 맥
- 제이쿼리
- jquery
- php
Archives
- Today
- Total
개발자의 끄적끄적
[android] 안드로이드 스튜디오 기기 고유의 토큰값 받아오기 [펌] 본문
728x90
반응형
[android] 안드로이드 스튜디오 기기 고유의 토큰값 받아오기 [펌]
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에도 띄워서 볼 수 있고, 저처럼 웹서버로 전송도 가능합니다.
반응형
'개발 > android & ios' 카테고리의 다른 글
[Android] 안드로이드 내 휴대폰(디바이스) 번호 가져오기 [펌] (0) | 2020.07.06 |
---|---|
[Android] FCM (Firebase Cloud Messaging) 구현 [펌] (0) | 2020.07.05 |
[android] UsageStatsManager로 앱 실행 기록 가져오는 방법 및 예제 (0) | 2020.07.04 |
[android] 부팅시 자동 실행하기 (0) | 2020.07.04 |
[android] 안드로이드스튜디오 앱아이콘 변경 (0) | 2020.07.03 |
Comments