简体   繁体   English

Android GCM无法将通知消息发送到设备

[英]Android GCM not send notification message to device

我在从GCM Server获取通知消息时遇到问题。设备在不空闲或处于运行状态时将正确获取通知,但是当设备空闲10-15分钟时,设备将无法获取通知,并且所有已注册的设备无法从GCM服务器获取通知。如何解决此问题?

Normally, your app need to wake when it sleeps. 通常,您的应用需要在睡眠时唤醒。

  1. Put this into your manifest file to wake your device when the message is received 将其放入清单文件中以在收到消息时唤醒设备

     <uses-permission android:name="android.permission.WAKE_LOCK" /> 
  2. Add java class name WakeLocker.java 添加Java类名称WakeLocker.java

     public abstract class WakeLocker { private static PowerManager.WakeLock wakeLock; public static void acquire(Context context) { if (wakeLock != null) wakeLock.release(); PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, "WakeLock"); wakeLock.acquire(); } public static void release() { if (wakeLock != null) wakeLock.release(); wakeLock = null; } } 
  3. Call the above code in 'private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver()' that might be in your MainActivity.java 在您的MainActivity.java中的“ private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver()”中调用以上代码

      private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String newMessage = intent.getExtras().getString(EXTRA_MESSAGE); // Waking up mobile if it is sleeping WakeLocker.acquire(getApplicationContext()); /** * Take appropriate action on this message * depending upon your app requirement * For now i am just displaying it on the screen * */ // Showing received message lblMessage.append(newMessage + "\\n"); Toast.makeText(getApplicationContext(), "New Message: " + newMessage, Toast.LENGTH_LONG).show(); // Releasing wake lock WakeLocker.release(); } }; 

    Thank This source 谢谢这个来源

    Hope this helps 希望这可以帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM