Как отправить регистрационный идентификатор C2DM на сервер - PullRequest
0 голосов
/ 15 января 2012

Я какое-то время искал в Интернете, и я не могу заставить свое приложение для Android отправить регистрационный идентификатор и идентификатор устройства на сервер. Я уверен, что есть что-то простое, что мне не хватает, но кто-нибудь может увидеть, что я делаю неправильно? Код нажимается, и отображаются тосты, но сервер ничего не делает, но если я перехожу к 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 голосов
/ 18 января 2012

Мне наконец-то удалось заставить его работать.

Я добавил следующие разрешения в манифест xml, но не уверен, почему он это исправил ...

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

Были также некоторые проблемы с моим сервером, но я получил ответ только после добавления разрешений.

...