簡體   English   中英

Android - 使用google雲消息傳遞的高優先級消息(使用corona sdk)

[英]Android - high priority messages with google cloud messaging (using 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;

從以下兩個鏈接

GCM優先

優化Doze和App Standby

您可以推斷出高優先級消息

GCM嘗試立即提供高優先級消息,允許GCM服務在可能的情況下喚醒休眠設備並打開與應用服務器的網絡連接。

並為正常的消息

普通優先級消息不會打開睡眠設備上的網絡連接,並且可能會延遲它們的傳送以節省電池電量。

正如你從以下問題的答案中看到的那樣

你永遠不能確定Android設備是否處於睡眠模式,因為Android版本低於Marshmallow,對於運行Marshmallow或更高版本的設備,有打盹模式。

因此,通過運行以下命令,獲取運行Marshmallow或更高版本的設備並將其置於劑量模式

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

您可能需要多次運行第二個命令。 重復此過程,直到設備狀態變為空閑。

現在嘗試發送具有高優先級和普通優先級的推送通知。 當消息優先級高時,應該接收通知,類似地,當沒有設置優先級或設置為正常時,通知將在延遲或喚醒設備時傳送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM