Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 城市航空vs GCM通知_Android_Android Intent_Notifications_Google Cloud Messaging - Fatal编程技术网

Android 城市航空vs GCM通知

Android 城市航空vs GCM通知,android,android-intent,notifications,google-cloud-messaging,Android,Android Intent,Notifications,Google Cloud Messaging,我在使用GCM时遇到了一个严重的问题。之前我们使用UrbanAirship发送推送通知,UrbanAirship使用GCM发送推送消息。现在,我们已经在客户端和服务器上实现了自己的GCM,并且只希望使用GCM发送推送通知。由于一些用户将使用旧版本的应用程序,并且可能没有更新到新版本,因此我们必须继续使用UrbanAirship向他们发送通知。更新应用程序的用户将仅通过gcm获得推送消息。这是在调试模式下测试的,工作正常。当推送消息通过UrbanAirship发送时,安装了新版本的设备没有收到推送

我在使用GCM时遇到了一个严重的问题。之前我们使用UrbanAirship发送推送通知,UrbanAirship使用GCM发送推送消息。现在,我们已经在客户端和服务器上实现了自己的GCM,并且只希望使用GCM发送推送通知。由于一些用户将使用旧版本的应用程序,并且可能没有更新到新版本,因此我们必须继续使用UrbanAirship向他们发送通知。更新应用程序的用户将仅通过gcm获得推送消息。这是在调试模式下测试的,工作正常。当推送消息通过UrbanAirship发送时,安装了新版本的设备没有收到推送消息

但在live server上,当我们尝试发送推送消息时,从一开始就与我们在一起的更新应用程序的用户(他们过去通过UrbanAirship接收推送消息)收到了来自GCM和UrbanAirship的推送消息。通过GCM发送的推送消息包含该消息,但通过UrbanAirship发送的消息为空。同样的事情并没有发生在那些第一次安装应用程序的设备上。这些用户仅通过GCM接收推送消息

我相信这是因为UrbanAirship仍然拥有用于通过UrbanAirship接收推送消息的设备的设备ID。现在,处理GCM和UrbanAirship广播的活动所使用的权限是相同的,它们都响应意图过滤器中的相同操作。因此,即使UrbanAirship的活动已从清单文件中删除,消息仍由处理GCM推送消息的活动处理


有没有办法阻止UrbanAirship向那些使用DD通过UrbanAirship接收通知的设备发送推送消息?或者从城市航空公司注销这些设备?或者我可以通过传递一个额外的参数来修改GCM的接收器,如果应用程序中无法识别该参数,则不会创建推送通知?

您可以通过以下方式为您的设备发送哈希id来注册您的设备:

UAirship.shared().getPushManager().getNamedUser().setId(msisdn)
并通过将命名用户设置为null来取消注册:

UAirship.shared().getPushManager().getNamedUser().setId(null);

UrbanAirship API是否提供取消注册的方法从UrbanAirship注册数据库中删除设备?