如何将C2DM注册ID发送到服务器

时间:2012-01-14 22:15:41

标签: android android-c2dm

我已经在互联网上搜索了一段时间,我无法让我的Android应用程序将注册ID和设备ID发送到服务器。我确信有一些我想念的简单,但任何人都可以看到我做错了什么?代码被点击并显示Toasts,但是服务器没有做任何事情,但是如果我直接转到URL,它就会按照我的意愿执行。

if (!regId.equals("")) {
        Toast.makeText(context, "The registration ID is: " + regId,
                Toast.LENGTH_LONG).show();
        Toast.makeText(context, "The device ID is: " + deviceId,
                Toast.LENGTH_LONG).show();
        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://uni.britintel.co.uk/register.php");

        try {
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
            nameValuePairs.add(new BasicNameValuePair("deviceId", deviceId));
            nameValuePairs.add(new BasicNameValuePair("registrationId", regId));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            // Execute HTTP Post Request
            HttpResponse httpresponse = httpclient.execute(httppost);
            BufferedReader rd = new BufferedReader(new InputStreamReader(
                    httpresponse.getEntity().getContent()));

            String line = "";
            while ((line = rd.readLine()) != null) {
                Log.e("HttpResponse", line);
                Toast.makeText(context, line,
                        Toast.LENGTH_LONG).show();
            }


        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
    } else {
        Toast.makeText(context, "The registration ID doesn't exist",
                Toast.LENGTH_LONG).show();
    }

一旦我开始工作,缓冲的阅读器将被移除,因为它对我想要的东西毫无意义。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我终于设法让它发挥作用了。

我在清单xml中添加了以下权限,但不确定为什么要修复它...

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

我的服务器也存在一些问题,但我在添加权限后才收到回复。