Я включил систему push-уведомлений с Firebase в свой проект и хорошо работает. Немногие clarficiationИнтеграция Firebase с использованием WakefulBroadcastReceiver
шаги, чтобы следовать за интеграцию Firebase
- Созданный файл JSon из firebase консоли и добавил в моем проекте (Google-services.json)
Dependency компилировать LIB добавляемые в моей сборки. gradel (root, а также внутри приложения)
AndroidManifest.xml добавил следующий сервер.
<service android:name="com.myfirebase.myfirebasemsgservice" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>
Внутри «myfirebasemsgservice» добавил следующую строку и исходя и работает хорошо.
public void onMessageReceived(RemoteMessage fcmMessage) { Log.d(TAG, "From: " + fcmMessage.getFrom()); if (fcmMessage.getData().size() > 0) { Log.d(TAG, "Message data payload: " + fcmMessage.getData()); Log.d(TAG, "Message data payload: " + fcmMessage.getData().toString());
Я проверил и получил уведомление при отправке из firebase консоли, а также ARC (Advanced REST КЛИЕНТА). Я пробовал использовать полезную нагрузку и полезную нагрузку.
Мои разъяснения и как нам нужно интегрировать в firebase же, как показано ниже кода. Как мы это делали раньше? Любая идея и как мы должны интегрироваться, как это ?.
AndroidManifest.xml - добавлено ранее.
<receiver android:name="com.mygcm.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" /> <category android:name="${applicationId}" /> </intent-filter> </receiver> <service android:name="com.mygcm.gcmIntentService" />
gcmbroadcastReceiver добавил нижеследующий код.
public class GcmBroadcastReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ComponentName comp = new ComponentName(context.getPackageName(), GCMIntentService.class.getName()); startWakefulService(context, (intent.setComponent(comp))); } }
gcmIntentService добавил нижеследующий код.
public class gcmIntentService extends IntentService { @Override protected void onHandleIntent(Intent intent) { Bundle extras = intent.getExtras(); GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); String messageType = gcm.getMessageType(intent); try { if (!extras.isEmpty()) { if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) { Log.d("LogData",intent.getStringExtra(Constants.PAYLOAD)); } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType)) { Log.d("LogData",intent.getStringExtra(Constants.PAYLOAD)); } else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) { Log.d("LogData",intent.getStringExtra(Constants.PAYLOAD)); } } } catch(Exception ignored) { ExceptionTrack exe_track=ExceptionTrack.getInstance(); } finally { GcmBroadcastReceiver.completeWakefulIntent(intent); }
}
вам удалось найти решение? от того, что я знаю 'FirebaseInstanceIdReceiver - это WakefulBroadcastReceiver, который принимает события FirebaseInstanceId и FirebaseMessaging и доставляет их в класс, который вы получаете из FirebaseInstanceIdService.' – Poorya