2016-03-23 11 views
5

मैं अपने फोन को जगाने या जीसीएम का उपयोग करके हल्का झपकी पाने की कोशिश कर रहा हूं। मुझे संदेश ठीक मिल रहा है लेकिन उच्च प्राथमिकता को स्थापित करने में कोई फर्क नहीं पड़ता है या कोई भी नहीं। मैं परीक्षण करने के लिए एक रेजर maxx एचडी का उपयोग कर रहा हूँ। क्या मैं यहां कुछ भी याद कर रहा हूं?एंड्रॉइड - Google क्लाउड मैसेजिंग के साथ उच्च प्राथमिकता संदेश (कोरोना एसडीके का उपयोग करके)

<?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; 
+0

PHP में JSON ऑब्जेक्ट बनाना आम तौर पर सरणी बनाने में समान होता है? '$ फ़ील्ड 'सरणी की सामग्री अच्छी लगती है, यह सिर्फ [प्रलेखन] (https://developers.google.com/cloud-messaging/http-server-ref#send-downstream) में इंगित है कि यह JSON होना चाहिए । [प्राथमिकता सेट करना] (https://developers.google.com/cloud-messaging/concept-options#setting-the-priority-of-a- message) को 'उच्च' में सोना डिवाइस उठाना चाहिए। सुनिश्चित करें कि जीसीएम तुरंत संदेश भेजता है – adjuremods

+0

हेडर "एप्लिकेशन/जेसन" हैं जो इसे जेसन के रूप में एन्कोड करेगा। मैं इस ऐप को कोरोना एसडीके का उपयोग कर रहा हूं, इसलिए एक देशी एंड्रॉइड ऐप में चलने वाले सभी नियमित जावा कोड मेरे लिए अनुपलब्ध हैं। सुनिश्चित नहीं है कि मुझे इसे पूरा करने के लिए ऐप के भीतर कुछ अधिसूचना कोड चलाने की आवश्यकता है .. – hamobi

उत्तर

3

निम्नलिखित दो लिंक

GCM Priority

Optimizing for Doze and App Standby

आप उच्च प्राथमिकता संदेश के लिए मान सकते हैं कि

GCM, तुरंत उच्च प्राथमिकता संदेश देने के लिए अनुमति का प्रयास जी जब संभव हो तो एक नींद डिवाइस उठाने के लिए सीएम सेवा और अपने ऐप सर्वर पर नेटवर्क कनेक्शन खोलें।

और सामान्य संदेश के लिए

सामान्य प्राथमिकता संदेशों एक सो डिवाइस पर नेटवर्क कनेक्शन खोल, और उनके वितरण बैटरी बचाने के लिए देरी हो सकती है नहीं होंगे।

और आप यह सुनिश्चित करें कि एंड्रॉयड डिवाइस Marshmallow या संस्करण चलाने वाले उपकरणों के लिए, Android संस्करण Marshmallow से भी कम समय के लिए नींद मोड में है Doze मोड है कभी नहीं हो सकता के रूप में आप निम्नलिखित question

के लिए जवाब से देख सकते हैं ।

तो एक डिवाइस Marshmallow या अधिक से अधिक चल रहा प्राप्त करने और निम्न कमांड

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

आप एक बार से दूसरा आदेश अधिक चलाने के लिए आवश्यकता हो सकती है चलाकर मोड खुराक डाल दिया। डिवाइस स्थिति निष्क्रिय होने तक इसे तब तक दोहराएं।

अब उच्च प्राथमिकता और सामान्य प्राथमिकता के साथ पुश अधिसूचना भेजने का प्रयास करें। जब संदेश प्राथमिकता उच्च होती है तो अधिसूचना प्राप्त की जानी चाहिए और इसी तरह जब कोई प्राथमिकता निर्धारित नहीं होती है या सामान्य पर सेट की जाती है तो अधिसूचना कुछ देरी के साथ या जब आप डिवाइस को जगाते हैं तो वितरित की जाएगी।

+0

उत्तर के लिए धन्यवाद लेकिन जैसा कि मैंने कहा है कि मैं एक रेजर maxx hd का उपयोग कर रहा हूं। मेरी कंपनी मुझे परीक्षण करने के लिए कोई एंड्रॉइड डिवाइस प्रदान नहीं कर रही है .. पुराने का उपयोग करके :(मुझे लगता है कि एंड्रॉइड 4.4.2 – hamobi

+0

आप परीक्षण उद्देश्य के लिए Google एपीआई छवि के साथ एमुलेटर का उपयोग कर सकते हैं –

संबंधित मुद्दे