FCM 사용하기 (2019-04-17) - 새버전
앱을 구동하면 toast 로 token 값을 확인할 수 있다.
서버랑 연동하기 위해 내용을 보강해야 함.
===============================
안드로이드 FCM 관련 글입니다.
구글에서는 예전부터 지속적으로 GCM이 아닌 FCM사용을 권고하였습니다.
그리고 안드로이드 신규 버전인 9.0파이버전부터는 GCM이 정상적인 작동을 하지 않습니다.
FCM프로젝트를 생성 및 푸시 테스트까지 진행해 보도록 하겠습니다.
FCM관련 콘솔 홈페이지로 접속합니다(링크)
구글계정이 로그인 되어있는 상태에서 위의 링크를 클릭하면 아래와 같은 화면으로 진입합니다.
화면에서 프로젝트 추가를 클릭합니다.
다음부터는 스크린샷을 따라서 해주시면 되겠습니다.
아래 디버그 서명 인증서는 선택사항이며 꼭 하지 않으셔도 됩니다.
하지만 밑줄친 기능을 사용하실려면 등록하시면 됩니다.
위의 스크린샷에서 처럼 google-service.json 파일을 다운받은 뒤 현재 FCM사용을 위해
생성한 프로젝트 app폴더 안에 파일을 넣도록 합니다.
여기까지 하셨으면 기본적으로 FCM을 준비하는건 다되셨습니다.
이제 프로젝트 내부에 Gradle 셋팅과 FCM 구현이 남아있는데요.
먼저 Gradle 셋팅입니다.
프로젝트 내 dependencies 안에 아래 코드를 넣어줍니다.
implementation 'com.google.firebase:firebase-messaging:17.3.4'
implementation 'com.google.firebase:firebase-core:16.0.4'
dependencies 밖에 json파일 관련 아래 코드를 넣어줍니다.
apply plugin: 'com.google.gms.google-services'
두번째 앱 내의 denpendencies 안에 아래 코드를 넣어줍니다.
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.0.1'
Gradle 스크린샷 입니다.
여기까지 준비가 되셨다면 이제 FCM을 구현해주면 됩니다.
프로젝트내에 FirebaseInstanceIDService 라는 클래스 파일을 생성한 뒤 아래와 같이 구현합니다.
메소드에 대한 설명은 주석으로 되어있습니다.
package kr.com.fcmtarget.fcm;
// Androidx 에서는 위에 대신에 아래것을 사용한다. //import androidx.core.app.NotificationCompat;
import android.util.Log; |
위의 소스를 완성 하셨다면AndroidManifest.xml에 아래 소스까지 해주시면 완성입니다.
<service android:name=".FirebaseInstanceIDService" 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>
===== MainActivity.java 내용 추가 =====
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// FCM
Task id = FirebaseInstanceId.getInstance().getInstanceId();
id.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
InstanceIdResult result = task.getResult();
String id = result.getId();
String token = result.getToken();
Log.d(TAG, "Token id : " + id);
Log.d(TAG, "Token : " + token);
String aaa = task.getResult().getToken();
Toast.makeText (getBaseContext(), aaa, Toast.LENGTH_SHORT).show();
} else {
Log.d(TAG, "Token Exception : " + task.getException().toString());
}
}
});
}
}
==================
자 이제 테스트를 해봐야겠죠?
데이터를 보내는 페이로드 관련 및 테스트는 다음글에 적도록 하겠습니다.
출처: https://kwon8999.tistory.com/entry/안드로이드-FCM-구현1프로젝트-셋팅-및-구현 [Kwon's developer]
'프로그래밍 > Android (Java)' 카테고리의 다른 글
탭 스와이프 (tab swipe) 사용하기 (0) | 2019.04.19 |
---|---|
인트로 슬라이드 화면 구성하기 (0) | 2019.04.19 |
다운로드 매니저 (DownloadManager) 관련 옵션 (0) | 2019.01.28 |
버튼 이벤트 강제 발생 시키기 (0) | 2019.01.26 |
몇 초 멈추게 하기 (0) | 2018.12.27 |