Android应用中的Dropbox Core和Sync API

时间:2015-07-07 19:36:45

标签: android dropbox-api

是否可以在一个Android应用中同时使用Core和Sync Api?

1 个答案:

答案 0 :(得分:1)

可以一起使用它们。这是一个2部分的设置。

删除项目错误:

  1. 将两个SDK的jar文件添加到项目中
  2. 现在打开Dropbox Core SDK jar文件并删除client2.Auth类 - 导致命名空间冲突的任何内容。在修复此问题之前,您将看到错误
  3. 验证SDK:

    1. 为Sync SDK设置保管箱链接 - 此处有许多文档
    2. 使用以下方法从您的Core SDK获取同步SDK的oAuth凭据:

        AppKeyPair appKeyPair = new AppKeyPair(APP_KEY, APP_SECRET);
        AndroidAuthSession session = new AndroidAuthSession(appKeyPair);
        session.setOAuth2AccessToken(getTokenFromSyncAPI());
        session.finishAuthentication();
      
    3. 最后,遗漏的方法:

      String getTokenFromSyncAPI() {
          String token = null;
      
          String allTokens = getApplicationContext().getSharedPreferences("dropbox-credentials",
                  Context.MODE_PRIVATE).getString("accounts", null);
      
          try {
              JSONArray jsonAccounts = new JSONArray(allTokens);
              if (jsonAccounts.length() > 0) {
                  String tmpToken = null;
                  tmpToken = jsonAccounts.getJSONObject(0).getString("userToken");
      
                  // We take only oAuth2 tokens
                  if (tmpToken.startsWith("|oa2|"))
                      token = tmpToken.substring(5);
              }
          } catch (JSONException e) {
              e.printStackTrace();
          }
      
          return token;
      }
      

      方法礼貌:https://blogs.dropbox.com/developers/2015/05/migrating-sync-sdk-access-tokens-to-core-sdk/

      PS:链接中显示的方法有错误。 substring(6)代替5