Android GCM 配对服务器和客户端?

标签 android google-cloud-messaging

如何让服务器和客户端配对?

我有一台使用 Google Cloud Messaging 发送消息的服务器。 我在 Android 上也有一个客户端,它有一个可以接收的应用程序。

但我需要从客户端获取设备 ID 并将其提供给服务器。还有其他配对设备的方法吗?

我想将多个设备连接到同一个服务器,这可能吗?

谢谢

最佳答案

您可以使用 HTTP 调用连同设备 ID(ANDROID_ID 或 IMEI)将 GCM 注册 ID 从设备发送到服务器。 服务器可以保留设备与其 GCM 注册 ID 之间的映射。 从服务器发送 GCM 时:使用 GCM regId、服务器 key 和项目 ID。

在您的第一个 Activity 中:

if (regId.equals(""))
{
    GCMRegistrar.register(this, Constants.GCM_SENDER_ID);
}
else
{
// Send "regId" to server (e.g. using http)
}

在您的 GCMIntentService 类中:

protected void onRegistered(Context arg0, String arg1)
{
    // Send arg1 to server along with some device Id (e.g. ANDROID_ID or IMEI)
}

是的,可以将不同的设备与服务器配对。我们已将数百台设备与我们的服务器配对。

编辑:

设备调用代码中的以下 URL: http://www.example.com/updateGcm?id= &gcmId=

服务器简单地保存/更新数据库表中的映射。 恐怕我无法提供确切的服务器端代码。 我们正在使用 PHP 服务器(不使用为服务器提供的 jar)

关于Android GCM 配对服务器和客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11860998/

相关文章:

android - GCM 通知的自定义 UI

java - 无法使用 Smack 通过 CCS 接收来自 Google Cloud Messaging 的所有消息,只能每秒接收一次

java - 将 RegistrationId 发送到后端

android - 部署导入我的类的 AIDL

java - 按存在的数字对文本文件的行进行排序,并按降序输出整行

android - "Views added to a FragmentContainerView must be associated with a Fragment"与 android 导航组件

android - smali生成的classes.dex在.apk中不起作用

android - 在 Windows 7 中创建 war 文件

android - 让 Android 设备作为服务器直接向 GCM 发送消息

java - 如果用户名和密码匹配,登录按钮需要更改颜色