Я хочу отправить сообщения с моего облачного сервера на эмулятор Android или устройство Android с номером телефона.
Является ли это возможным? Нужно ли использовать какой-либо шлюз?
Проверьте это:
https://developer.android.com/google/gcm/index.html
https://developer.android.com/google/gcm/http.html
В основном вы должны сделать CURL вызов
https://android.googleapis.com/gcm/send
Что-то вроде этого:
$data = array(
'collapse_key' => $msgType,
'data' => array('message' => $news_text,
'title' => $news_title,
'url' => $messageUrl,
'message_id' => $news_id,
'notification_type' => $channel_name),
'registration_ids' => $devices
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send");
if ($headers)
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response_json = curl_exec($ch);$response = json_decode($response_json);
print_r($response_json);
GCM / FCM — это готовое решение. Если бы каждое приложение, использующее push-уведомления, реализовало бы какую-либо услугу прослушивания или опроса, батарея быстро разряжалась бы. Вот почему Google, а также Apple предоставляют 1 единый сервис для всей системы Android и ее приложений для использования.
Это означает, что это невозможно сделать, я думаю, что есть некоторые сторонние сервисы push-уведомлений.
Я просто не думаю, что это умная вещь todo. Скорее всего, Google создаст надежный, быстрый и эффективный сервис.