Уведомление Firebase Android получено как GCM - PullRequest
0 голосов
/ 17 мая 2018

Я использую уведомление 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>
...