从我们从Android应用程序发送的PHP获取注册ID

时间:2011-12-08 08:00:40

标签: php android push-notification android-c2dm

这是为了开发支持C2DM的Android应用程序

我做得不错的事情

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

我感到困惑的事情

  • 当我的Android应用程序通过“http”请求时,该网页( 1 )会如何得到通知?

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

不能工作的东西

  • 将PushNotification发送到运行我的Android应用的模拟器。提到this。那段代码非常好,第一部分也适合我。但是当我运行sendMessageToPhone()函数时,它发送给我401.在我的代码中,我硬编码了值;

  • $ authCode =我获得的Google身份验证码

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

所以请帮助我清除我的困惑并纠正我的“不工作”活动。

1 个答案:

答案 0 :(得分:0)

以下是向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
}