如何修复Google云消息传递注册错误:SERVICE_NOT_AVAILABLE?

30
我遇到了一个奇怪的问题 - 我已经在我的应用程序中使用GCM相当长的时间,并且一切都运行得很完美。然而,在发布到Google Play之前,我将应用程序包名称从 com.android.testapp 改为 com.android.recognition,此后GCM停止工作。起初我收到了错误消息 GCM sender id not set on constructor,通过重写getSenderIds(Context context)方法解决了这个问题,但现在我无法获取注册ID。以下是来自logcat的消息: enter image description here 我该如何解决这个问题?当我切换到新包时,我将清单文件中所有内容都更改为新包的名称。
<receiver
        android:name="com.google.android.gcm.GCMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.android.recognition" />
        </intent-filter>
    </receiver>

那么这背后的问题是什么?重命名应用程序包是否会导致这种情况,或者还有其他原因?


你在使用模拟器工作吗?用的是哪个模拟器? - Pankaj Kumar
@PankajKumar 我正在使用真实设备:Kindle Fire和LG NEXUS 4 进行开发,但是什么都不起作用。 - MainstreamDeveloper00
对我来说,这看起来很奇怪。我必须尝试几次。有时候,我需要强制关闭应用程序。然后它就可以工作了。 - K.Sopheak
请检查您的互联网连接是否正常... FCM需要在运行设备上使用互联网来访问网络服务并生成设备令牌。 - Sayed Mohd Ali
17个回答

2

对我来说,问题在于手机没有连接到互联网。我断开并重新连接Wi-Fi,并使用浏览器测试了连接性,然后再次测试。效果非常好 :-)


0

我曾经有一部OnePlus2手机,当使用数据时无法接收推送。当我使用logcat连接时,我看到了很多这种错误,但不确定它是否相关。

我放弃了寻找相应设置的尝试,只是对设备进行了恢复出厂设置。运行OxygenOS的OnePlus设备在安装软件更新时有时会出现奇怪的配置错误,恢复出厂设置并从Google备份中还原可以更快地使事情恢复正常,而不需要理解潜在问题(甚至可能用户没有正确的访问权限来修复潜在问题)。


0
我已经关闭了谷歌服务的“后台数据访问”。通过在数据使用选项中取消勾选“限制后台数据”,这对我有效!

0
对我来说,SERVICE_NOT_AVAILABLE问题出现在我的应用程序项目中,因为接收器类有问题。所以我按照以下方式实现了接收器,最终解决了这个问题。 <receiver android:name="接收器名称" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE"/> <action android:name="com.google.android.c2dm.intent.REGISTRATION"/> <category android:name="你的包名"/> </intent-filter> </receiver> 希望这能帮到你 :-) 。

0

对我来说,谷歌屏蔽了我的IP地址!我不得不重置我的DSL连接以从池中获取一个新的IP地址,然后一切都恢复正常了。我不知道他们为什么会屏蔽我,也许是因为我尝试了太多的应用程序?无论如何,现在它可以工作了,我希望这能帮助其他人 :)


0
在我的情况下,这是因为我的手机内部没有SIM卡。我猜测拥有SIM卡可以设置设备的自动时间,从而解决此问题。

-1

经过长时间的努力,我终于解决了这个问题。 请确保您的Google Play服务应用程序是最新的,并且在您的手机上未禁用其后台同步。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接