본문 바로가기

Android

[안드로이드 개발기간] gcm menifest 설정

용어정리

용어정리

 - senderID : developer console에 들어가서 Project Number이다. 

 - Sender AuthToken  =  서버 키 라고도 불리며, 우리 서버가 gcm서버를 요청할 때, 자신의 서버키를 등록하는 것이다. 유출되지 않도록 보안에 신경을 써야한다. 

 - Registration Token : Gcm Server로부터 앱이 발급받은 ID

 - Application ID = manifest에 등록된 앱의 pakage명


menifest설정 


1. permissin 4개 설정
2. receiver 설정

Permission 정의

wake.Lock 폰이 꺼져있을때 키는 permission

googleplayservice가 메세지를 날릴때, c2dm.permission.RECEIVE퍼미션이 있어야 받을 수 있다. 

그 담에 자신의 permission을 정의해야한다. 

<permission android:name  = "패키지명.퍼미션.C2D MESSAGE" android:protetionLevel = "signature"> 이건 안바뀐다 

앱의 도장을 찍을 때 사용한 동일한 키스토어를 가지고 찍었을 때만 사용한다. 

내 앱만 획득하는 임의에 permission을 정의 해야한다. 

이걸 하는 이유는 이슈가 있기 때문인데, 메세지를 구글플레이서비스가 보내면, 샌드메세지를 받을때, 다른 앱이 가져갈 수있기 때문이다. 

이걸 정의하고 <uses-permission android:name = "com.example.gcm.permission.C2D_MESSAGE" />로 정의를 다시 해야한다. 


receiver 정의 

receiver
 android:name :"com.google.android.gms.gcm.GcmReceiver"
android.:export = "true"
android:permission = <"com.google.adnroid.c22dm.permission.SEND">
-이건 페이킹메세지를 방지하기 위해서 이걸 등록하면 googleplayservice만 보낼 수있다. 

<category android:name  = "패키지명"> 시스템이 효율적으로 보낼 수있게끔 하는 것이다. 


설정은 여기 까지 


service 정의


service를 정의해야한다. 
</service>
android:name="서비스 클래스 이름"
android:exported = "false"  -> 외부에서 받아서 할 수있기 때무에 

<intent - filter>
action android:name ="com.google.android.c2dm.intent.RECEIVE"/>

</intent - filter>


</service>



<service

android name  ="REgistrationIntentService"

android:exported="false"> 

<intent - filter>

<action android : name ="com.google.android.gms.iid.InstantId"/> ------ 아이디가 갱신되는경우 토큰을 업데이트해줘야하기때문에 

</intent - filter>

</service>


<service

android:name = "RegistrationIntentService"  -- registrationid 를 발급하는 경우 써줘야한다. 

android:exported = "false">

</service>

</application>

</menifest>  ------설정 끝 

'Android' 카테고리의 다른 글

CleanArchetecture  (0) 2020.05.22
ComponentArchitecture  (0) 2020.05.22
[안드로이드 개발기간] request만들기  (0) 2016.09.11
[25일차] 채팅  (0) 2016.08.23
[25일차]페이스북 로그인 연동  (0) 2016.08.23