我正在使用 Azure Notification Hub 在我的Android应用程序中实现推送通知功能。一切似乎都很好;我只有一个问题。
只有当我使用移动数据连接到互联网时,才能在我的设备上获得推送通知;一旦我关闭移动数据并通过Wi-Fi连接,我就无法收到任何推送通知消息。
我正在缩小我的搜索范围,因为第一次注册存在一些问题。它只允许该模式(在我的情况下,移动数据)接收任何推送消息。
注册时,我使用以下代码:
NotificationsManager.handleNotifications(this, SENDER_ID, NotificationsReceiver.class);
gcm = GoogleCloudMessaging.getInstance(this);
hub = new NotificationHub(HubName, HubListenConnectionString, this);
registerWithNotificationHubs();
.
.
.
private void registerWithNotificationHubs() {
new AsyncTask() {
@Override
protected Object doInBackground(Object... params) {
try {
String regid = gcm.register(SENDER_ID);
DialogNotify("Registered Successfully", "RegId : " +
hub.register(regid).getRegistrationId());
} catch (Exception e) {
DialogNotify("Exception", e.getMessage());
return e;
}
return null;
}
}.execute(null, null, null);
}
答案 0 :(得分:1)
...尤里卡!!!! :)这是Google Play服务的一个问题。 移动数据打开时它已连接,但没有连接到Wi-Fi。 罪魁祸首是 IPv6 。 只需禁用IPv6 ,一切就像魅力一样。
检查Google Play服务是否正常运作;从您手机的拨号器拨打此代码: *#*#426#*#* 并验证是否已连接。
注意:在Wi-Fi连接上,您可以在Play商店中获取许多应用以禁用IPv6。我使用 IPv6工具应用程序来禁用IPv6。