这是一个开发支持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
}