2015-03-17 2 views
1

я в настоящее время создать BroadcastReceiver вроде этого: В моем фрагменте:Пользовательские GCMBroadcastReceiver

receiver=new GcmBroadcastReceiverLobby(); 
IntentFilter filter =new IntentFilter("com.google.android.c2dm.intent.RECEIVE"); 
filter.setPriority(9999); 
filter.addAction("com.google.android.c2dm.intent.RECEIVE"); 
getActivity().registerReceiver(receiver, filter); 

class GcmBroadcastReceiverLobby extends WakefulBroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Bundle extras = intent.getExtras(); 
     String messageType = extras.toString(); 
     setResultCode(Activity.RESULT_CANCELED); 
     abortBroadcast(); 
    } 
} 

Проблема заключается в intent.getExtras не возвращает детали из GCM-сообщение.

<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="de.battlestr1k3.gamelobbies" /> 
     </intent-filter> 
    </receiver> 

    <service android:name=".GcmIntentService" android:exported="true" /> 

GcmBroadcastReceiverLobby имеет более высокий приоритет, поэтому он сначала получает уведомление. Возможно, мне не хватает разрешения в коде?

extras.toString() 

возвращает Пачка [mParcelledData.dataSize = 280]

ответ

0

Хорошо я добавил

if (!extras.isEmpty()) { 

} , и она работала

Смежные вопросы