Я использую уведомление Firebase Android в моем проекте Android, и оно работает отлично, за исключением некоторых устройств, уведомление Firebase не получено, вместо этого я получаю следующее в Logcat:
05-17 17: 38: 22.292 27292-27292 / com.example.myapp D / ActivityThread: вызов BDC onReceive: intent = Intent {act = com.google.android.c2dm.intent.RECEIVE flg = 0x10 pkg = com.example.myapp cmp = com.example.myapp / com.google.firebase.iid.FirebaseInstanceIdReceiver (имеет дополнения)}, упорядоченный = true, receiver=com.google.firebase.iid.FirebaseInstanceIdReceiver@422443a8
05-17 17: 38: 22.295 27292-27292 / com.example.myapp E / FirebaseInstanceId: Ошибка при разрешении службы целевого намерения, пропуск применения имени класса. Разрешенный сервис был: tv.peel.app/com.peel.receiver.FCMService
05-17 17: 38: 22.411 27292-27292 / com.example.myapp D / ActivityThread: обработано BDC-RECEIVER: 0 / ReceiverData {intent = Intent {act = com.google.android.c2dm.intent.RECEIVE flg = 0x10 pkg = com.example.myapp (имеет дополнительные функции)} packageName = com.example.myapp resultCode = -1 resultData = null resultExtras = null}
где com.google.android.c2dm.intent.RECEIVE для GCM, который я никогда раньше не использовал в своем приложении !!!
П.С .: Я использую php curl для отправки полезных данных через уведомление Firebase, и это работает, за исключением вышеперечисленного.
$fields = array
(
'registration_ids' => $registrationIds,
'data' => $data
);
$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );
echo $result;
и результат $:
{
"multicast_id": 5419052642417855073,
«успех»: 1,
«провал»: 0,
"canonical_ids": 0,
"Результаты": [
{
"message_id": "0: 1526567349119146% bc732c83f9fd7ecd"
}
]
}
Редактировать:
Услуги по манифесту:
<service android:name=".firebase.MyFirebaseMessagingService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".firebase.MyFirebaseInstanceIDService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>