Dropbox Sync API错误

时间:2013-11-30 18:01:59

标签: java android eclipse dropbox dropbox-api

我已从此处下载并安装了适用于Android的Dropbox Sync API:https://www.dropbox.com/developers/sync

我无法理解他们的教程。它缺少很多关键变量,所以我必须自己找出它们。我现在有一个非常混乱的代码,很多东西都没有。

private DbxAccountManager mDbxAcctMgr;
static final int REQUEST_LINK_TO_DBX = 0;  // This value is up to you // thanks for telling what it actually does, Dropbox!
DbxPath path = new DbxPath("/test.pdf");


public void onClickLinkToDropbox(View view) {
    mDbxAcctMgr.startLink((Activity)this, REQUEST_LINK_TO_DBX);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_LINK_TO_DBX) {
        if (resultCode == Activity.RESULT_OK) {

            DbxFileSystem dbxFs = DbxFileSystem.forAccount(mDbxAcctMgr.getLinkedAccount()); // try /catch error

            DbxFile testFile = dbxFs.open(path); //try/catch error
            String contents = testFile.readString();

            Log.d("Dropbox Test", "File contents: " + contents); // try / catch error

        } else {
            // ... Link failed or was cancelled by the user.
        }
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}   

这给了我3行的错误,说我需要添加try / catch。 但是当我添加try / catch时,Eclipse告诉我将变量置空,这意味着所有函数只读取空值,因此不会读取任何内容。

任何人都可以帮助我吗? Dropbox只是通过提供错误的指令等让我更加困惑。我确信即使我没有3次尝试/捕获错误,它仍然无法正常工作。

此处有使用Dropbox Sync API经验的人可以在用户的​​Dropbox文件夹中共享读取txt文件的示例程序吗?

巴特

1 个答案:

答案 0 :(得分:0)

有关REQUEST_LINK_TO_DBX的更多信息,请查看onActivityResult的Android文档:https://developer.android.com/reference/android/app/Activity.html#onActivityResult(int,int,android.content.Intent)。它可以帮助您区分不同的活动。

对于一个工作示例,我建议查看SDK附带的HelloDropbox示例。除此之外,它还从Dropbox中的文件中读取一个字符串。

以下是HelloDropboxActivity.java的相关代码:

try {
    // ...
    DbxFileSystem dbxFs = DbxFileSystem.forAccount(mDbxAcctMgr.getLinkedAccount());
    // ...
    String resultData;
    DbxFile testFile = dbxFs.open(testPath);
    try {
        resultData = testFile.readString();
    } finally {
        testFile.close();
    }
} catch (IOException e) {
    // ...
}