com.google.android.c2dm.intent.RECEIVE android 9(sdk 28)不';行不通

com.google.android.c2dm.intent.RECEIVE android 9(sdk 28)不';行不通,android,push-notification,google-cloud-messaging,android-c2dm,android-9.0-pie,Android,Push Notification,Google Cloud Messaging,Android C2dm,Android 9.0 Pie,我对谷歌新推出的安卓SDK 28有意见。(安卓派) 我正在尝试发送一条c2dm云消息(推送通知),一切正常 API级别低于或等于27(使用真实手机和模拟器测试),但在API级别28上失败-处理广播的BroadcastReceiver子类上未调用onReceive 关于这个问题,我已经阅读了所有我能找到的资料,但是没有用,欢迎提供任何有用的提示 EDIT2:上载的示例项目: 您需要使用密钥编辑gcminentservice中的SENDER\u ID。据我所知,获得GCM密钥的唯一方法是让一个已经存

我对谷歌新推出的安卓SDK 28有意见。(安卓派)

我正在尝试发送一条c2dm云消息(推送通知),一切正常 API级别低于或等于27(使用真实手机和模拟器测试),但在API级别28上失败-处理广播的
BroadcastReceiver
子类上未调用
onReceive

关于这个问题,我已经阅读了所有我能找到的资料,但是没有用,欢迎提供任何有用的提示

EDIT2:上载的示例项目: 您需要使用密钥编辑
gcminentservice
中的
SENDER\u ID
。据我所知,获得GCM密钥的唯一方法是让一个已经存在的密钥,因为Google不久前禁用了对工作控制台的访问。

您可以使用

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(mContext);
String token = gcm.register(SENDER_ID);

这个广播接收器是在清单中声明的还是在运行时注册的?它是在清单中声明的,但我可以在运行时重新注册它,只需几秒钟就可以对它进行测试
GCMBroadcastReceiver receiver=new GCMBroadcastReceiver()//IntentFilter=newintentfilter()//filter.addAction(“com.google.android.c2dm.intent.RECEIVE”)//filter.addAction(“com.google.android.c2dm.intent.REGISTRATION”)//filter.addCategory(“com.myapp”)//registerReceiver(接收器,过滤器,“com.google.android.c2dm.permission.SEND”,null)可以吗@PawelGCM已被弃用,您应该使用FCM@Saurabh我正在修复公司的一个废弃项目,服务器要到12月才能更新。这就是为什么我们需要先修复android 9,然后修复服务器,然后用FCM进行更新。目前这是我需要解决的问题。@Pawel,用上面的代码进行了测试-设置为
onCreate()
,但运气不好。谢谢!这就解决了问题。