Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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
Php 如何防止android应用程序在重新安装时从GCM接收推送通知,直到用户使用我的web服务进行身份验证_Php_Android_Google Cloud Messaging - Fatal编程技术网

Php 如何防止android应用程序在重新安装时从GCM接收推送通知,直到用户使用我的web服务进行身份验证

Php 如何防止android应用程序在重新安装时从GCM接收推送通知,直到用户使用我的web服务进行身份验证,php,android,google-cloud-messaging,Php,Android,Google Cloud Messaging,我已经实现了一个从GCM接收推送通知的应用程序,但当用户重新安装应用程序时,GCM会根据旧的注册id发送通知,该id从web服务发送到GCM。在用户通过应用程序的web服务进行身份验证之前,我如何防止这些通知 我将每个用户的注册id和用户手机存储在SharedReferences中,当重新安装应用程序时,会重置此注册表,但我无法更新此注册表,因为web服务需要一个手机号码来编辑数据库 我的web服务是用php实现的不,我理解你的问题 看,有两种解决方案 当您注册GCM时,您需要发送您在Googl

我已经实现了一个从GCM接收推送通知的应用程序,但当用户重新安装应用程序时,GCM会根据旧的注册id发送通知,该id从web服务发送到GCM。在用户通过应用程序的web服务进行身份验证之前,我如何防止这些通知

我将每个用户的注册id和用户手机存储在SharedReferences中,当重新安装应用程序时,会重置此注册表,但我无法更新此注册表,因为web服务需要一个手机号码来编辑数据库


我的web服务是用php实现的

不,我理解你的问题 看,有两种解决方案

  • 当您注册GCM时,您需要发送您在Google帐户上创建的ProjectId,以便识别设备 我的建议是,你们应该保存设备的IMEI号码,每当你们重新启动应用程序时,将该IMEI号码发送回你们的后端,然后删除用户未登录的条目

  • 在应用程序中保持轮询间隔,ping回所有已登录用户,并设置超时间隔,注销超过超时时间的用户。重要的是,仅ping已登录用户,以便清除未登录其注册id的ppl


  • 当用户卸载并重新安装应用程序时,他们的ID会发生变化,因此如果您将一个ID发送到旧ID,他们将无法获得该ID。没有GCM尝试使用IMEI号码发送基于规范ID的通知,因为,用户可以改变他们的手机&那样的话,他们将被锁定在我们的网络之外service@SudeshGutta都德,来吧,去阅读文档,你创建的projectd有一个你的设备ID的引用,这是谷歌检测到在哪里推送通知的方式,所以如果你改变设备,你认为你的用户会收到通知,直到他重新注册,伙计尽快把你的概念弄清楚,你的用户永远不会收到通知,除非你用谷歌注册或重新注册他的新设备谢谢你的帮助。。。这是我第一次使用推送通知&GCMNo问题请看有两件事不要在未登录的设备上发送推送通知为此,请为您的登录令牌保留ttl ie生存时间第二次每当他注销时立即杀死令牌在他删除应用并重新安装的情况下如何让他注销您可以在前端和后端都这样做现在选择活动令牌并尝试向设备发送通知如果用户没有安装应用程序,它们将失败,因此现在解决第一部分如果每次应用程序启动时再次安装应用程序(如果您在前端注销他),请将其设备的唯一标识发送到您的设备后端,所以你们可以做的是杀死令牌和注册id,你们从应用程序发送到你们的服务器,只有当你们发现他注销