Android:打印队列中出现Google云打印错误

Android:打印队列中出现Google云打印错误,android,google-cloud-print,Android,Google Cloud Print,我有一个Android应用程序,它可以使用OAuth2.0和Google Play服务库进行云打印。在我这方面,我会把内容作为URL放到云打印上,一切都很好。我可以从Google Cloud获取响应状态代码200,响应消息是“文档已添加到打印队列”,但当我签入Google打印作业时,它会显示作业错误,如下所示: 在尝试了这么多示例文件之后。我发现,如果文档大小小于2MB,并且URL必须是物理文件路径,则可以打印文档(我尝试使用Servlet URL,但它不起作用)。我找不到任何网站谈论云打印

我有一个Android应用程序,它可以使用OAuth2.0和Google Play服务库进行云打印。在我这方面,我会把内容作为URL放到云打印上,一切都很好。我可以从Google Cloud获取响应状态代码200,响应消息是“文档已添加到打印队列”,但当我签入Google打印作业时,它会显示作业错误,如下所示:

在尝试了这么多示例文件之后。我发现,如果文档大小小于2MB,并且URL必须是物理文件路径,则可以打印文档(我尝试使用Servlet URL,但它不起作用)。我找不到任何网站谈论云打印的最大文件大小、设置方式或URL内容类型。 如果我想打印Servlet URL或大小超过2MB的文件,你们对此有什么建议吗

这是我的密码:

protected PrintersResult doInBackground(String... params) {
    PrintersResult pResult = null;
    try {

        String contentUrl = "http://ocw.mit.edu/ans7870/resources/Strang/Edited/Calculus/Calculus.pdf";
        String url = getString(R.string.google_cloud_print_url,
                new Object[] { mToken, printId, contentUrl });

        HttpResponse response = NetworkUtil.getCloudPrintResult(url,
                mToken);

        StatusLine statusLine = response.getStatusLine();
        int sc = statusLine.getStatusCode();

        if (sc == HttpStatus.SC_OK) {
            String responseString = EntityUtils.toString(response
                    .getEntity());
            pResult = new Gson().fromJson(responseString,
                    PrintersResult.class);
        } else
            errorMessage = getString(R.string.label_server_return_error_code)
                    + String.valueOf(sc);

    } catch (ArrayIndexOutOfBoundsException e) {

        errorMessage = getString(R.string.label_print_error);
    } catch (HttpResponseException e) {

        errorMessage = getString(R.string.label_login_gaccount_error_credentials);
    } catch (IOException e) {

        errorMessage = getString(R.string.label_print_error);
    } catch (Exception e) {

        errorMessage = e.getMessage();
    }
    return pResult;
}

公共静态HttpResponse getCloudPrintResult(字符串url,字符串令牌){
HttpClient HttpClient=NetworkUtil.createHttpScClient();
HttpPost HttpPost=新的HttpPost(url);
HttpResponse响应=null;
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“客户端id”,MPOS\U GOOGLE\U客户端id));
添加(新的BasicNameValuePair(“访问令牌”,令牌));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
httppost.addHeader(“授权”、“OAuth”+令牌);
addHeader(“contentType”、“application/pdf”);
//执行HTTP Post请求
response=httpclient.execute(httppost);
}捕获(例外e){
Log.e(“ConnectionUtil”,e.getMessage(),e);
}
返回响应;
}
谷歌打印url是:

<string name="google_cloud_print_url" formatted="false">https://www.google.com/cloudprint/submit?access_token=%s&amp;cookies=false&amp;printerid=%s&amp;content=%s&amp;contentType=url</string>
https://www.google.com/cloudprint/submit?access_token=%s&曲奇=假&;printerid=%s&;内容=%s&;contentType=url

此有错误的作业包含一些文本信息。从服务器获取关于此作业的json,并查看json对象“uiState”和“semanticState”。您看到了什么?另外,请尝试使用上载将此文件发送到打印,而不使用内容url
<string name="google_cloud_print_url" formatted="false">https://www.google.com/cloudprint/submit?access_token=%s&amp;cookies=false&amp;printerid=%s&amp;content=%s&amp;contentType=url</string>