package com.leminity.gcmsampleapp;


import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.util.Log;

import android.widget.Toast;


import com.google.android.gcm.GCMRegistrar;


/**

 * GCM Service 이용을 위한 샘플 프로젝

 * @author Leminity

 *

 */

public class MainActivity extends Activity {

private static final String TAG ="MainActivity";

private static final String PROJECT_ID=""; //Google Cloud Messageing Service PROJECT ID

private Context appContext = null;//applicationContext


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initialize();//변수 초기화

startGCM();//GCM 시작 메소드

}

private void initialize(){

appContext = getApplicationContext();

}

/**

* GCM 서비스를 시작한다.

*/

private void startGCM(){

/**

* GCM Service가 이용 가능한 Device인지 체크한다.

* api 8(Android 2.2) 미만인 경우나 GCMService를 이용할 수 없는

* 디바이스의 경우 오류를 발생시키니 반드시 예외처리하도록 한다.

*/

try {

GCMRegistrar.checkDevice(appContext);

} catch (Exception e) {

// TODO: handle exception

Log.e(TAG, "This device can't use GCM");

return;

}

/**

* 2.SharedPreference에 저장된 RegistrationID가 있는지 확인한다.

* 없는 경우 null이 아닌 ""이 리턴

*/

String regId = GCMRegistrar.getRegistrationId(appContext);

/**

* Registration Id가 없는 경우(어플리케이션 최초 설치로 발급받은 적이 없거나,

* 삭제 후 재설치 등 SharedPreference에 저장된 Registration Id가 없는 경우가 이에 해당한다.)

*/

if(CommonUtils.isEmpty(regId)){

/**

* 3.RegstrationId가 없는 경우 GCM Server로 Regsitration ID를 발급 요청한다.

* 발급 요청된 Registration ID는 SharedPreference에 저장된다.

*/

GCMRegistrar.register(appContext, PROJECT_ID);

//SharedPreference에 저장된 Registration Id가 존재하는 경우

}else{

Toast.makeText(appContext, "Exist Registration Id: " + regId, Toast.LENGTH_LONG).show();

}

}


@Override

protected void onDestroy() {

// TODO Auto-generated method stub

/**

* 4.앱 종료되기 전이나 종료하기 전에 GCMRegistrar.onDestroy를 반드시 호출한다.

* 호출하지 않을 경우 unRegisterReceiver오류가 발생한다.

* 해당 함수는 null이나 기타 오류에 대해 내부적으로 예외 처리하고 있으므로, 아무때나 마음껏 호출해도 된다.

*/

GCMRegistrar.onDestroy(appContext);

super.onDestroy();

}


}



'Android' 카테고리의 다른 글

앱 만들기 (코딩없어도 만들수 있다)  (0) 2020.09.23
GCMIntentService.java 내용 설명(주석)  (0) 2016.06.16

+ Recent posts