将位图/uri传递给Box Android API v2

将位图/uri传递给Box Android API v2,android,bitmap,box-api,box,boxapiv2,Android,Bitmap,Box Api,Box,Boxapiv2,编辑: 我编写了一个传递经过身份验证的Box客户端和位图ByTestStream的函数。也被告知Box上的根目录的ID为0。但我还是无法上传 我需要做的是创建一个目录,如果存在,请不要将文件上载到该目录中 private void doUpload(final BoxAndroidClient client, final ByteArrayInputStream bs) { if(client.isAuthenticated()) { System.out.p

编辑: 我编写了一个传递经过身份验证的Box客户端和位图ByTestStream的函数。也被告知Box上的根目录的ID为0。但我还是无法上传

我需要做的是创建一个目录,如果存在,请不要将文件上载到该目录中

private void doUpload(final BoxAndroidClient client, final ByteArrayInputStream bs) {


    if(client.isAuthenticated())
    {
        System.out.println("Trying to upload: In upload function");

         AsyncTask<Null, Integer, Null> task = new AsyncTask<Null, Integer, Null>() {

                @Override
                protected void onPostExecute(Null result) {
                    Toast.makeText(PagerActivity.this, "done uploading", Toast.LENGTH_LONG).show();
                    super.onPostExecute(result);
                }

                @Override
                protected void onPreExecute() {
                    Toast.makeText(PagerActivity.this, "start uploading", Toast.LENGTH_LONG).show();
                    super.onPreExecute();
                }

                @Override
                protected Null doInBackground(Null... params) {


                    try {
                        BoxDefaultRequestObject folreqObj = new BoxDefaultRequestObject();

                        BoxFolder newFol = new BoxFolder();
                        String parentId = newFol.getId();

                        BoxFileUploadRequestObject requestObj = BoxFileUploadRequestObject.uploadFileRequestObject("0", "bestphotonow.png", bs);
                        client.getFilesManager().uploadFile(requestObj);
                        /*
                        if(client.getFoldersManager().getFolder(parentId, folreqObj).getName()!=null)
                        {
                            BoxFileUploadRequestObject requestObj = BoxFileUploadRequestObject.uploadFileRequestObject(parentId, "bestphotonow.png", bs);
                            client.getFilesManager().uploadFile(requestObj);

                        }
                        else

                        {
                            BoxFolderRequestObject upreqObj = BoxFolderRequestObject.createFolderRequestObject("BestPhotoNow", parentId);
                            client.getFoldersManager().createFolder(upreqObj);
                            BoxFileUploadRequestObject requestObj = BoxFileUploadRequestObject.uploadFileRequestObject(parentId, "bestphotonow.png", bs);
                            client.getFilesManager().uploadFile(requestObj);
                        }*/




                    } catch (BoxRestException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (BoxJSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (BoxServerException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (AuthFatalFailureException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }



                    return null;
                }
            };
            task.execute();
        }


}
我正在尝试传递位图或uri

在OnActivityResult中

    case BOX_RESULT:
             if (resultCode == Activity.RESULT_CANCELED) {
                // Get the error message for why authentication failed.
                String failMessage = data.getStringExtra(OAuthActivity.ERROR_MESSAGE);
                // Implement your own logic to handle the error.
              // handleFail(failMessage);
            } else {
                // You will get an authenticated oath token object back upon success.
                BoxAndroidOAuthData oauth = data.getParcelableExtra(OAuthActivity.BOX_CLIENT_OAUTH);
                        // If you don't want to supply a customized hub or parser, use null to fall back to defaults.
                        BoxAndroidClient client = new BoxAndroidClient( "vfoj4oxxxxxxxxxxtordlh454wem", 
                                "J9TjxxxxxxxmRwux2V2C", null, null, null);
                        client.authenticate(oauth);
                       System.out.println("Data for Box: "+data.getExtras().getString("boximageUri"));
                       BoxFileUploadRequestObject requestObj = BoxFileUploadRequestObject.uploadFileRequestObject(0, "name", file);
                            BoxFile bFile = client.getFilesManager().uploadFile(requestObj);


            }

            break;
在这里,我成功地获得了身份验证,但我没有收到我传递的意图数据中的uri或位图

此外,如果有人知道如何将位图传递到文件,以便为Box api v2上传文件,我将非常感谢您的帮助

谢谢,
Arnab

试着转移责任

当您转到Oauth活动时,只需进行身份验证,并从授予Box api后续操作权限的活动返回凭据或令牌

选择正确的api发布位图。。。这里需要一个api调用,该调用允许将位图对应的ByteArray作为ByteArrayEntity加载到http POST操作的主体中

如何准备本地位图实例以作为byteArray包装在文章正文中的示例

    case BOX_RESULT:
             if (resultCode == Activity.RESULT_CANCELED) {
                // Get the error message for why authentication failed.
                String failMessage = data.getStringExtra(OAuthActivity.ERROR_MESSAGE);
                // Implement your own logic to handle the error.
              // handleFail(failMessage);
            } else {
                // You will get an authenticated oath token object back upon success.
                BoxAndroidOAuthData oauth = data.getParcelableExtra(OAuthActivity.BOX_CLIENT_OAUTH);
                        // If you don't want to supply a customized hub or parser, use null to fall back to defaults.
                        BoxAndroidClient client = new BoxAndroidClient( "vfoj4oxxxxxxxxxxtordlh454wem", 
                                "J9TjxxxxxxxmRwux2V2C", null, null, null);
                        client.authenticate(oauth);
                       System.out.println("Data for Box: "+data.getExtras().getString("boximageUri"));
                       BoxFileUploadRequestObject requestObj = BoxFileUploadRequestObject.uploadFileRequestObject(0, "name", file);
                            BoxFile bFile = client.getFilesManager().uploadFile(requestObj);


            }

            break;