GCM + Android + Java帮助需要

时间:2013-05-30 05:33:05

标签: java android http serversocket google-cloud-messaging

我是Java Android世界的新手。我正在开设一个课程项目,我需要一些帮助。在我的项目中,我开发了一个Android应用程序和一个Java Socket Server。 Android应用程序从服务器和服务器请求密钥生成密钥,将它们存储在其数据库中并将密钥发送回Android客户端。这工作正常。现在,在android客户端中,我必须添加一个名为“注册设备”的按钮,然后点击这个应该用GCM注册设备并将regID存储在设备中,我想用键请求添加并发送到服务器。服务器将使用密钥将regID存储在DB中。然后我想使用存储的regID向设备发送推送消息。

问题:

  • 如何存储然后访问GCM regID以发送到服务器?
  • 我的套接字服务器需要做什么才能使用存储的regID向设备发送推送消息?

1 个答案:

答案 0 :(得分:0)

我看到你已经获得了deviceID和registrationID,你必须将它存储在你的服务器上。 现在可以创建一个按钮,它将执行以下操作。 $ public void sendRegistrationIdToServer(String deviceId,             字符串registrationId){

    HttpClient client = new DefaultHttpClient();
    Log.d("GCM","sending to server");
    HttpPost post = new HttpPost("YOur URL.php");
    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        // Get the deviceID
        nameValuePairs.add(new BasicNameValuePair("deviceid", deviceId));
        nameValuePairs.add(new BasicNameValuePair("registrationid", registrationId));

        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = client.execute(post);
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        Log.d("GCM","sent to server");
                } catch (IOException e) {
        e.printStackTrace();
    }
}

在服务器端,您可以收到ID并将其存储在数据库中。 希望你明白。