1

이것은 이상한 질문 일 수 있지만 일반적으로 작업 수신자 (예 : SMS 수신)를 등록 할 때 응용 프로그램에 가능한 한 우선 순위 값을 지정합니다. 그래서 내 응용 프로그램이 다른 응용 프로그램보다 먼저 SMS를받을 수있게하고, 내가 원하는대로 (중단 방송과 같이) 할 수 있습니다.Google 클라우드 메시징 응용 프로그램 선택

GCM에 대한 우선 순위를 부여하지 않았거나 특별한 조치를 취하지 않았습니다. GCM Receive에 대한 사용 권한을 추가하고 매니페스트 파일에 수신기를 등록했습니다.

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
. 
. 
. 
<receiver 
    android:name="com.google.android.gcm.GCMBroadcastReceiver" 
    android:permission="com.google.android.c2dm.permission.SEND" > 
    <intent-filter> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
    </intent-filter> 
</receiver> 

또 다른 응용 프로그램도 해당 매니페스트 파일에 추가한다고 가정합니다. GCM은 다른 애플리케이션의 브로드 캐스트 리시버 대신 브로드 캐스트 리시버를 어떻게 호출합니까? GCM Client Manifest Setup

답변

2

:

가입 및 안드로이드 응용 프로그램의 메시지를 수신 다른 안드로이드 응용 프로그램을 방지하기 위해 applicationPackage + ".permission.C2D_MESSAGE" 권한을 [당신은 추가해야합니다]. 사용 권한 이름은이 패턴과 정확히 일치해야합니다. 그렇지 않으면 Android 응용 프로그램이 메시지를받지 않습니다.

즉, com.example.app 필요가 패키지 이름으로 대체 할

<permission android:name="com.example.app.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="com.example.app.permission.C2D_MESSAGE" /> 

<application ...> 
    <receiver 
     android:name=".GcmBroadcastReceiver" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      <category android:name="com.example.app" /> 
     </intent-filter> 
    </receiver> 
    <service android:name=".GcmIntentService" /> 
</application> 

.

+0

생성 된 등록 ID와 관련하여이 권한을 추가하고 있습니까 (나중에 서버가 메시지를 보내는 데 사용함)? – inankupeli