FirebaseInstanceId 등록 및 토큰(token) 정보 얻기
아이폰과 조금 다른 부분이 있어서 잘 정리를 해두어야 할 것 같다. 생소한 FCM 처리를 통해 push토큰을 획득하는 부분에 대한 처리 코드는 다음과 같다.
@Override
protected void onCreate(Bundle savedInstanceState) {
//.... 중략
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
Log.w("FIREBASE", "getInstanceId failed", task.getException());
return;
}
// Get new Instance ID token
String token = task.getResult().getToken();
// Log and toast
//String msg = getString(R.string.msg_token_fmt, token);
Log.d("FIREBASE", token);
Toast.makeText(ActivityNewMain.this, token, Toast.LENGTH_SHORT).show();
}
});
}
AndroidManifest.xml 에는 다음과 같은 코드가 추가 되어야 한다.
<service android:name=".FirebaseMessagingIDService"
android:enabled="true"
android:exported="true"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
따라서 FirebaseMessagingIDService 가 추가되어야 하고 intent-filter를 추가해준다.
하나는 메시지를 받기 위함이고 하나는 메시지를 받기 위한 ID 식별자를 FCM서버에 등록하고 얻을 수 있게 함이다.
public class FirebaseMessagingIDService extends FirebaseMessagingService {
/**
* 구글 토큰을 얻는 값입니다.
* 아래 토큰은 앱이 설치된 디바이스에 대한 고유값으로 푸시를 보낼때 사용됩니다.
* **/
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.e("Firebase", "FirebaseInstanceIDService : " + s);
}
/**
* 메세지를 받았을 경우 그 메세지에 대하여 구현하는 부분입니다.
* **/
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage != null && remoteMessage.getData().size() > 0) {
sendNotification(remoteMessage);
}
}
/**
* remoteMessage 메세지 안애 getData와 getNotification이 있습니다.
*
* **/
private void sendNotification(RemoteMessage remoteMessage) {
String title = remoteMessage.getData().get("title");
String message = remoteMessage.getData().get("message");
}
}
'프로그래밍 > Android' 카테고리의 다른 글
Android java.lang.OutOfMemoryError: .. with 16777216 free bytes and 69MB until OOM (0) | 2019.05.16 |
---|---|
안드로이드 DialogFragment를 이용한 팝업 페이징 구현하기 (0) | 2019.05.14 |
안드로이드 런타임 퍼미션 요청 (READ_CONTACTS) (0) | 2018.12.06 |
Android 주소록 가져오기 (연락처 및 프로필 사진) (0) | 2018.11.30 |
android EditText 커서 색상, 위치 밑줄 설정에 대한 이야기 (0) | 2018.11.23 |