从PHP中获取注册ID我们从Android app中发送过来


Getting the Registration ID from PHP which we sent from Android app

这是一个开发支持C2DM的Android应用程序的努力

我做对的事情

  • 使用C2DM获取有效的Gmail地址
  • 编写Android应用程序从C2DM获取registrationId
  • 从C2DM获取registrationId
  • 传递该registrationId到第三方服务器(我发送到一个php第1页)()
  • 正确发送它(我检查了它与HttpEntity类在同一android应用程序,我得到了该页面的内容)
  • 在服务器端获取Google认证ID(使用PHP)
  • 在我的模拟器中打开一个Gmail帐户(菜单-设置-帐户&sync - Add account)

我很困惑

  • 如何网页(1)得到通知时,我的Android应用程序通过了一个"http"请求?

  • 如何在我的Android应用程序发送的网页中显示registrationId ?

不工作的东西

  • 发送推送通知到运行我的Android应用程序的模拟器。这段代码真的很好,第一部分也适用于我。但是当我运行sendMessageToPhone()函数时,它向我发送401。在我的代码中,我硬编码的值;

  • $authCode = Google认证码我得到

  • $deviceRegistrationId = C2DM发送给我的Android应用程序的代码

所以请帮我澄清我的困惑,并纠正我的"不工作"的活动。

下面是向PHP发送POST请求的最简单代码:

String url = "http://your.domain.com/path/to/your/post/request/handler.php";
HttpClient client = new DefaultHttpClient();
try {
  List<NameValuePair> post = new ArrayList<NameValuePair>();
  post.add(new BasicNameValuePair("registrationId", "[YOUR ID VALUE HERE]"));
  client.setEntity(new UrlEncodedFormEntity(post));
  client.execute(new HttpPost(url));
} catch(IOException e) {
  //do something here
}

在服务器端(即在你的PHP脚本),你可以使用$_POST超全局变量从POST数据填充,它是一个简单的关联数组。像这样:

if (!empty($_POST['registrationId'])) {
  //do something here
}