Articles of google cloud messaging

使用Google Cloud Messaging API时出现限速超出错误

使用Google Cloud Messaging API在后端服务器和Android / Chrome客户端之间发送邮件时,后端服务器有时会收到超出速率限制的响应代码。 此代码对于HTTP连接服务器为“DeviceMessageRateExceeded”,对于云连接服务器为“DEVICE_MESSAGE_RATE_EXCEEDED”。 这个错误代码是什么以及应该如何管理?

如何在触发特定活动后启动FCM ID服务?

假设我有一个LoginActivity ,用户可以使用现有凭据注册或登录。 除非用户已登录并且启动了应用程序的MainActivity ,否则我不希望FirebaseInstanceIdService生成令牌。 谢谢

使用Firebase获取GCM注册ID

我有一个ASP.net MVC服务器,我想将推送通知发送到我的Android应用程序。 我已经在应用中实施了Firebase Messaging ,并且从Firebase信息中心发送通知时工作正常。 我尝试通过发送邮件请求使用服务器发送推送通知,但请求需要to字段。 之前我们曾经发过GCM提供的registration id 。 现在,自Firebase处理它以来,如何使用Android中的Firebase SDK获取要放入to字段的注册ID?

从服务器端向Android设备发送FCM消息

随着新的更新,FCM现在将被使用。 我从git尝试了示例应用程序,它工作得很好。 我可以从控制台发送通知。 但我想在触发某个事件后从服务器发送通知。 我像GCM一样遵循相同的方法,但它不起作用。 05-20 20:40:58.941 30132-30919/com.google.firebase.quickstart.fcm E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1 Process: com.google.firebase.quickstart.fcm, PID: 30132 java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.String com.google.firebase.messaging.RemoteMessage$Notification.getBody()’ on a null object reference at com.google.firebase.quickstart.fcm.MyFirebaseMessagingService.onMessageReceived(MyFirebaseMessagingService.java:53) at com.google.firebase.messaging.FirebaseMessagingService.zzo(Unknown Source) at com.google.firebase.messaging.FirebaseMessagingService.zzn(Unknown Source) at com.google.firebase.messaging.FirebaseMessagingService.zzm(Unknown Source) at com.google.firebase.iid.zzb$2.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) 05-20 20:40:59.118 30132-30279/com.google.firebase.quickstart.fcm E/Surface: getSlotFromBufferLocked: unknown […]

java.io.IOException:GCM客户端中的SERVICE_NOT_AVAILABLE

我想将gcm客户端实现到现有的Android应用程序中。 因此,通过遵循本教程,我编写了以下代码: public class RegisterForGCMAsyncTask extends AbstractSecureOperationTask { … @Override protected Boolean doInBackground(String… params) { String token = authenticate(); getRegId(); if (TextUtils.isEmpty(registrationId)) { return false; } // try { URL url = convertToURLEscapingIllegalCharacters(String.format(Constants.REGISTER_URL, registrationId, userId, token)); URLConnection connection = url.openConnection(); InputStreamReader streamReader = new InputStreamReader(connection.getInputStream()); JSONParser parser = new JSONParser(); JSONObject rootObj = (JSONObject) parser.parse(streamReader); […]

Google云端消息传递 – 示例服务器

我需要一个Google云端消息传递示例应用程序。 使用示例服务器来测试我的应用程序。 谁可以帮我这个事? 我需要一个示例服务器来测试我的代码我已经编写了代码,但我不知道它会工作与否。 我不知道服务器端编码所以任何人都可以帮助我。 这是我的代码 意图服务 package com.example.pushnotificationsample; import android.content.Context; public class GCMIntentService extends GCMBaseIntentService { protected GCMIntentService(String senderId) { super(senderId); // TODO Auto-generated constructor stub } @Override protected void onError(Context arg0, String arg1) { // TODO Auto-generated method stub } @Override protected void onMessage(Context arg0, Intent msgIntent) { // TODO Auto-generated method stub […]

重新启动后GCMNetworkManager未运行PeriodicTask

如果应用程序在前台,后台运行或被杀死,该应用程序会显示预期的行为。 但是,一旦重新启动, PeriodicTask停止运行 以下是相关的代码: 在AndroidManifest : PeriodicTask配置: PeriodicTask task = new PeriodicTask.Builder() .setService(MyTaskService.class) .setTag(TASK_TAG_PERIODIC) .setPeriod(30L) .setFlex(10L) .setExtras(bundle) .setPersisted(true) .build(); mGcmNetworkManager.schedule(task); 在Logcat中,我得到以下内容: E/NetworkScheduler.TED: Couldn’t start service: Intent { act=com.google.android.gms.gcm.ACTION_TASK_READY cmp=xxx.xxxxxx.xxx/.tracking.MyTaskService (has extras) } 附加所有相关细节: AndroidManifest.xml中 主要活动 public class MainActivity extends AppCompatActivity { private static final String TAG = “MainActivity”; private static final int RC_PLAY_SERVICES = 123; […]

GCM-App真的需要唤醒锁吗?

我不太确定如何在GCM客户端文档中解释这句话: android.permission.WAKE_LOCK权限,以便应用程序可以在收到消息时使处理器无法hibernate。 可选 – 仅在应用程序希望防止设备hibernate时使用。 。 如果在将工作转换为服务时未保持唤醒锁定,则有效地允许设备在工作完成之前返回hibernate状态。 最终结果是应用程序可能无法完成处理GCM消息,直到将来某个任意点,这不是您想要的。 和 不要求使用WakefulBroadcastReceiver。 如果您有一个不需要服务的相对简单的应用程序,您可以在常规的BroadcastReceiver中拦截GCM消息并在那里进行处理。 我不太确定我的应用程序是否需要召唤唤醒锁(或者如果它需要服务)。 推送通知部分对应用程序非常重要,不应该延迟超过几分钟。 在接收所有数据之前,BroadcastReceiver是否有可能被暂停?

在Android上推送通知:Google GCM与Amazon SNS?

我的Android应用程序需要简单的推送通知才能获知服务器上新数据的外观。 Android提供的Google Cloud Messaging(GCM)似乎很合适。 但是,运行低于Android 4.0.4的设备需要在手机上显示Google帐户(截至2012年10月1日的Google平台统计信息 ,目前大约有75%的Android手机)。 要求用户在不相关的应用程序活动中设置Google帐户似乎不是一个好的体验。 对于可以在Android平台上使用的更通用的推送机制有什么建议吗? 例如, Amazon SNS的优缺点是什么? 还有其他候选人?

当Application在Background中时,不会调用GcmListenerService

当应用程序处于后台或手机处于锁定状态或处于睡眠模式但触发通知时,不会调用GcmListenerService。 当App处于前台时,它将如何调用它理想地工作。 GcmListenerService的代码如下 public class MyGcmListenerService extends GcmListenerService { private static final String TAG = “MyGcmListenerService”; LocalDataBaseManager mDbManager; String message; Random randomNumber; long ID; /** * Called when message is received. * * @param from SenderID of the sender. * @param data Data bundle containing message data as key/value pairs. * For Set of keys […]