标签: google-cloud-messaging

使用AWS SNS的FCM

我正在AWS为我的android项目使用资源,我打算为我的项目添加推送通知服务AWS SNS.有几个问题困扰我.我没有发现任何关于这些的问题,除了一两个但解释不清楚.

1. AWS支持FCM吗?SNS与...合作GCM.但谷歌建议使用FCM代替GCM.我没有找到AWS支持FCM.

2. AWS即使在发送推送通知后,还是将消息(或数据)存储到他们的数据库中?

3.我试过把FCM api密钥放在SNS应用平台上,显示无效参数为什么?

android amazon-web-services amazon-sns google-cloud-messaging firebase-cloud-messaging

91
推荐指数
4
解决办法
5万
查看次数

更新到Android Build Tools 25.1.6 GCM/FCM后出现IncompatibleClassChangeError

自从我更新到Android SDK工具25.1.6和Android支持存储库32.0.0(今天早上)后,我收到以下错误,我没有更改我的代码中的任何内容,它仍在我的同事计算机上运行(Android SDK工具) 25.1.1 + Android支持存储库30.0.0).

java.lang.IncompatibleClassChangeError: The method 
     'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' 
     was expected to be of type virtual but instead was found to be of type direct 
     (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)

     at com.google.android.gms.iid.zzd.zzeb(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
     at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source)
     at com.xxxxxxx.utils.RegistrationIntentService.onHandleIntent(RegistrationIntentService.java:55)
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)

这是一段崩溃的代码:

InstanceID instanceID = InstanceID.getInstance(this); // <-- crash here
String instanceIDToken = instanceID.getToken(getString(R.string.google_app_id),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Run Code Online (Sandbox Code Playgroud)

当我尝试从Google Cloud Messaging获取令牌时.

我正在使用分割的播放服务在Gradle中导入GCM:

 compile 'com.google.android.gms:play-services-analytics:9.0.0' 
 compile …
Run Code Online (Sandbox Code Playgroud)

android google-cloud-messaging android-gradle-plugin firebase-cloud-messaging

80
推荐指数
4
解决办法
5万
查看次数

Android GCM SENDER_ID,如何获得它?

我尝试迁移到GCM,我有一个问题,与SENDER_ID我需要提供.我使用谷歌的演示项目.在这个项目中,如果我理解这一点,我需要SENDER_ID在CommonUtilities.java文件中为应用程序提供一个.

我提供的SENDER_ID是我在https://code.google.com/apis/console/上注册的API密钥,其格式为:( AIzaSyAxxxxxxx_xxxxxxxxxxxnoGZw共40个字符).

SENDER_ID我在"BroadcastReceiver mHandleMessageReceiver"上使用此字符串时出现错误消息:来自GCM:错误(INVALID_SENDER)..

哪里出错了?我提供的字符串不是SENDER_ID

谢谢.

android sender-id google-cloud-messaging google-api-console

79
推荐指数
5
解决办法
9万
查看次数

对不同的构建方案使用不同的GoogleService-Info.plist

我正在使用prod的构建方案和一个用于暂存的构建方案(具有2个不同的bundle标识符),我正在尝试为每个方案使用单独的GoogleService-Info.plist.在初始化GCM(和goole登录)时,有没有办法手动选择要使用的plist文件?或者是否可以避免使用plist并手动进行设置?

谢谢!

ios google-cloud-messaging google-signin

78
推荐指数
15
解决办法
3万
查看次数

处理Android上的Google Cloud Messaging中的注册ID更改

在Google Cloud Messaging的文档中,它指出:

Android应用程序应该存储此ID以供以后使用(例如,如果已经注册,则检查onCreate()).请注意,Google可能会定期刷新注册ID,因此您应该设计Android应用程序,并了解可能会多次调用com.google.android.c2dm.intent.REGISTRATION意图.您的Android应用程序需要能够做出相应的响应.

我使用以下代码注册我的设备:

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context);
String regID = gcm.register(senderID);
Run Code Online (Sandbox Code Playgroud)

GoogleCloudMessaging类封装了注册过程.那么我想如何处理com.google.android.c2dm.intent.REGISTRATION,因为处理是由GoogleCloudMessaging类在内部完成的?

android push-notification google-cloud-messaging

77
推荐指数
2
解决办法
6万
查看次数

Android推送通知(GCM),有任何每日限制吗?

是否可以将数字推送通知(GCM)的每日限制发送给特定的Android应用程序用户?

android limit push-notification google-cloud-messaging

73
推荐指数
4
解决办法
9万
查看次数

找不到com.google.android.gsf包

我正在尝试使用新的Google Cloud Messaging系统,但我遇到了一些问题.

我阅读了入门文档并查看了演示应用程序; 之后,我将需求应用于我的应用程序,然后我创建了一个带有API 16的新虚拟设备.

但是当我尝试将我的设备注册到GCM时,由于这一行而失败:

GCMRegistrar.checkDevice(getApplicationContext()); 
Run Code Online (Sandbox Code Playgroud)

在logcat中我看到这些错误:

07-05 07:06:31.925: E/AndroidRuntime(691): FATAL EXCEPTION: main
07-05 07:06:31.925: E/AndroidRuntime(691): java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf
07-05 07:06:31.925: E/AndroidRuntime(691):  at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:83)
07-05 07:06:31.925: E/AndroidRuntime(691):  at aero.tav.mobile.genel$4.onClick(genel.java:201)
07-05 07:06:31.925: E/AndroidRuntime(691):  at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
07-05 07:06:31.925: E/AndroidRuntime(691):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 07:06:31.925: E/AndroidRuntime(691):  at android.os.Looper.loop(Looper.java:137)
07-05 07:06:31.925: E/AndroidRuntime(691):  at android.app.ActivityThread.main(ActivityThread.java:4745)
07-05 07:06:31.925: E/AndroidRuntime(691):  at java.lang.reflect.Method.invokeNative(Native Method)
07-05 07:06:31.925: E/AndroidRuntime(691):  at java.lang.reflect.Method.invoke(Method.java:511)
07-05 07:06:31.925: E/AndroidRuntime(691):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-05 07:06:31.925: E/AndroidRuntime(691):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-05 07:06:31.925: E/AndroidRuntime(691):  at …
Run Code Online (Sandbox Code Playgroud)

android google-cloud-messaging

72
推荐指数
2
解决办法
5万
查看次数

为什么我从GCM服务器端获得"MismatchSenderId"?

我正在尝试为我的Android应用创建推送服务,并且我遵循Google GCM的文档和示例:

我可以注册/取消注册我的Android应用程序.从我的服务器端,我可以看到我注册了一个订阅,但当我尝试从服务器向我的Android应用程序发送消息时,我总是会收到以下错误:

向设备#0发送消息时出错:MismatchSenderId

对于我的Android应用,我使用SENDER_ID = 200000000001.

对于我的服务器端,谷歌说我使用API​​_KEY = AIzxxxxxxxxxxxxxxxxXxxXxxXxxxXXXXXxxxxs

我按照这个文件:

http://developer.android.com/guide/google/gcm/demo.html

我也在我的Google API面板中启用了GCM,但我会收到恼人的错误消息.

我该如何解决这个问题?

android push-notification google-cloud-messaging

71
推荐指数
3
解决办法
13万
查看次数

如何在FCM通知中创建主题

我正在尝试使用Firebase-Notification API,当我将下游消息从控制台发送到应用程序时,该服务是完美的,但如何向主题注册用户发送消息?

我在android方面做过

FirebaseMessaging.getInstance().subscribeToTopic("TopicName");
Run Code Online (Sandbox Code Playgroud)

但当我尝试从控制台向主题发送下游消息时,它说

This project does not have any topics
Run Code Online (Sandbox Code Playgroud)

编辑:我发现在映射主题后,最多需要1天才能显示在Firebase控制台中

android firebase google-cloud-messaging firebase-notifications

67
推荐指数
4
解决办法
6万
查看次数

添加HttpClient标头会生成带有一些值的FormatException

这发生在针对Google Cloud Messaging的编码环境中,但适用于其他地方.

考虑以下:

var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("key=XXX");
Run Code Online (Sandbox Code Playgroud)

var http = new HttpClient();
http.DefaultRequestHeaders.Add("Authorization", "key=XXX");
Run Code Online (Sandbox Code Playgroud)

这两个都生成FormatException:

System.FormatException:值key = XXX'的格式无效.

解决方案是删除等号.

  1. 深入研究反射器显示,在添加新的标头值时会运行大量的验证和解析代码.为什么这一切都是必要的?难道这个客户不应该让我们走开吗?

  2. 如何逃避等号以便添加此值成功?

c# dotnet-httpclient google-cloud-messaging

65
推荐指数
4
解决办法
4万
查看次数