Android — высокоприоритетные сообщения с облачным обменом сообщениями Google (с использованием Corona SDK)

Я пытаюсь разбудить свой телефон или мигать светом с помощью GCM. Я получаю сообщения просто отлично, но нет никакой разницы в том, чтобы установить высокий приоритет или нет вообще. Я использую Razr Maxx HD для тестирования. я что-то здесь пропускаю?

<?php
// API access key from Google API's Console
define('API_ACCESS_KEY', 'blee');

// prep the bundle
$msg = array
(
'body' => 'this is my nice body',
'sound' => 'misc/androidnotification.mp3',

'custom' => array(
'route' => '/beee'
)
);
$fields = array
(
'collapse_key' => 'test',
"time_to_live" => 0,
'priority' => 'high',
'to' => 'mykey',
'data'          => $msg,

);

$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/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, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );
echo $result;

5

Решение

Из следующих двух ссылок

Приоритет GCM

Оптимизация для режима ожидания и ожидания приложения

Вы можете сделать вывод, что для сообщения с высоким приоритетом

GCM пытается доставить сообщения с высоким приоритетом немедленно, позволяя
служба GCM, чтобы разбудить спящее устройство, когда это возможно, и открыть
сетевое подключение к вашему серверу приложений.

и для нормального сообщения

Сообщения с обычным приоритетом не открывают сетевые соединения в спящем режиме
устройство, и их доставка может быть отложено для экономии заряда аккумулятора.

и как вы можете видеть из ответа на следующее вопрос

Вы никогда не можете быть уверены, что устройство Android находится в спящем режиме для версии Android ниже, чем Marshmallow, для устройств, работающих под управлением Marshmallow или более поздней версии, существует режим ожидания.

Так что получите устройство с запущенным Marshmallow или выше и переведите его в режим дозирования, выполнив следующие команды

$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step

Возможно, вам придется выполнить вторую команду более одного раза. Повторяйте это, пока состояние устройства не изменится на режим ожидания.

Теперь попробуйте отправить push-уведомление с высоким и нормальным приоритетом. Когда приоритет сообщения высок, уведомление должно быть получено, и аналогично, когда приоритет не установлен или установлен на нормальный уровень, уведомление будет доставлено с некоторой задержкой или при активации устройства.

3

Другие решения

Других решений пока нет …