C2DM SERVICE_NOT_AVAILABLE注册时出错

时间:2011-08-08 22:32:25

标签: android android-c2dm service-not-available

这是我的代码:

// begin the registration process
    status.setText("Registering...");
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("register.php");
    SharedPreferences settings = getSharedPreferences("settings", 0);
    String name = settings.getString("name", "");
    String email = settings.getString("email", "");
    String password = settings.getString("password", "");

    //get C2DM registration ID
    Context context = getApplicationContext();
    C2DMessaging.register(context, "qasim1iqbal");
    String reg_id = C2DMessaging.getRegistrationId(context);

    String HTML = "";
    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("name", name));
        nameValuePairs.add(new BasicNameValuePair("email", email));
        nameValuePairs.add(new BasicNameValuePair("password", password));
        nameValuePairs.add(new BasicNameValuePair("reg_id", reg_id));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = httpclient.execute(httppost);
        HTML = EntityUtils.toString(response.getEntity());
        Toast msg = Toast.makeText(getApplicationContext(), HTML, Toast.LENGTH_LONG);
        msg.show();

        Intent i = new Intent(getBaseContext(), doneRegisterActivity.class);
        startActivityForResult(i, 0);
    } catch (ClientProtocolException e) {
    } catch (IOException e) {
    }

我在注册时收到SERVICE_NOT_AVAILABLE错误,可能是什么原因引起的?这是一项活动。

1 个答案:

答案 0 :(得分:2)

来自C2DM page

  

设备无法读取响应,或者有500/503   可以在以后重试的服务器。应用程序应该使用   指数退避并重试。

可能是服务器打嗝。 (IE,怀疑它是你的结果)。可以肯定的是,尝试将您的凭据与该页面上列出的示例应用程序之一一起使用,并查看它是否在那里工作。