com.dropbox.client2.exception.DropboxUnlinkedException

拉利特

我想将文本文件发送到保管箱,但它正在显示DropboxUnlinkedException

解决方案 ::

首先,让您的程序获得完全认证。mDBApi.getSession.startAuthentication()方法之后,onResume方法将被自动调用。让完整的身份验证完成,然后执行您想做的事情。

主要活动

public class MainActivity extends Activity implements LocationListener{

TextView date;
TextView lati;
TextView longi;
Button b1;
private DropboxAPI<AndroidAuthSession> mDBApi;
private LocationManager locationManager;
private String provider;

final static public String ACCOUNT_PREFS_NAME = "GPS_File";
final static public String APP_KEY = "5qiq4z06ikagxfb";
final static public String APP_SECRET = "f6mbf1hnn0re2ni";
final static public AccessType ACCESS_TYPE = AccessType.APP_FOLDER;

boolean mIsLoggedIn = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET);
    AndroidAuthSession session = new AndroidAuthSession(appKeys, ACCESS_TYPE);
    mDBApi = new DropboxAPI<AndroidAuthSession>(session);

 //this is start authentication     
   mDBApi.getSession().startAuthentication(MainActivity.this);
 //after this it will call onResume 

    date = (TextView)findViewById(R.id.textView2);
    lati = (TextView)findViewById(R.id.textView4);
    longi = (TextView)findViewById(R.id.textView6);
    b1 = (Button)findViewById(R.id.button1);

    createFile("abcd", "12345", "54321");
    toDropbox();

    setLoggedIn(mDBApi.getSession().isLinked());
}

void createFile(String str1,String str2,String str3)
{
    String data = str1+"\t"+str2+"\t"+str3;
    try{
        File myFile = new File("/sdcard/DropboxFile1.txt");
        myFile.createNewFile();
        FileOutputStream fOut = new FileOutputStream(myFile);
        OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
      myOutWriter.append(data);
      myOutWriter.close();
      fOut.close();
        }
        catch(Exception e)
        {e.printStackTrace();}
}


void toDropbox()
{
    b1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            String filePath = Environment.getExternalStorageDirectory().getAbsolutePath().toString() + "/DropboxFile1.txt";
            File file = new File(filePath);

            mDBApi.getSession().startAuthentication(MainActivity.this);

            try {

                mDBApi.putFileOverwrite(filePath, new FileInputStream(file), file.length(), null);

            } catch (DropboxException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    });
}

private void clearKeys() {
    SharedPreferences prefs = getSharedPreferences(ACCOUNT_PREFS_NAME, 0);
    Editor edit = prefs.edit();
    edit.clear();
    edit.commit();
}

//This get call after StartAuthentication..
protected void onResume() {
    super.onResume();
    AndroidAuthSession session = mDBApi.getSession();
    // The next part must be inserted in the onResume() method of the
    // activity from which session.startAuthentication() was called, so
    // that Dropbox authentication completes properly.
    if (session.authenticationSuccessful()) {
        try {
            // Mandatory call to complete the auth
            session.finishAuthentication();

            // Store it locally in our app for later use
            TokenPair tokens = session.getAccessTokenPair();
            storeKeys(tokens.key, tokens.secret);
            setLoggedIn(true);
        } catch (IllegalStateException e) {
//Keep this toast.. It will show you the completed authentication..
            Toast.makeText(getBaseContext(), e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
            Log.i("Dropbox", "Error authenticating", e);
        }
    }
}    

private void storeKeys(String key, String secret) {
    // Save the access key for later
    SharedPreferences prefs = getSharedPreferences(ACCOUNT_PREFS_NAME, 0);
    Editor edit = prefs.edit();
    edit.putString(APP_KEY, key);
    edit.putString(APP_SECRET, secret);
    edit.commit();
}
public void setLoggedIn(boolean loggedIn) {
    mIsLoggedIn = loggedIn;
}
public boolean isLoggedIn() {
    return mIsLoggedIn;
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
@Override
public void onProviderDisabled(String arg0) {
    // TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
    // TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
    // TODO Auto-generated method stub
}
}//MainActivity Ends..`

`验证完成后,请执行其他操作。

用户名

您正在调用,startAuthentication但随后立即尝试调用API方法(在实际发生身份验证之前)。用户只有在通过身份验证后才能使用该API。在您的代码中,这是在用户进行身份验证并返回到您的应用程序之后运行的部分:

protected void onResume() {
    ...
    if (session.authenticationSuccessful()) {
        ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

com.dropbox.client2.exception.DropboxUnlinkedException

来自分类Dev

您应该使用以下方案拥有com.dropbox.client2.android.AuthActivity:XXXXXXXX

来自分类Dev

--client = 2参数在Dropbox中有什么作用?

来自分类Dev

Dropbox-Client不起作用

来自分类Dev

将旧邮件从Gmail迁移到Dropbox / Sync.com

来自分类Dev

Dropbox API v2-上传文件

来自分类Dev

Dropbox OAuth 2动态返回URL

来自分类Dev

Dropbox API v2-上传文件

来自分类Dev

与 Dropbox API v2 离线同步

来自分类Dev

使用Curl和Oauth 2将文件上传到DropBox的DropBox API PUT示例

来自分类Dev

如何使用dropbox-api dropbox-js V2打开弹出窗口

来自分类Dev

使用 Dropbox API V2 + Corodva 上传文件到 Dropbox

来自分类Dev

com.ibm.websphere.management.exception.AdminException:

来自分类Dev

com.ibatis.common.jdbc.exception.NestedSQLException:

来自分类Dev

okhttp-Dropbox http API v2

来自分类Dev

在Python中使用Dropbox API v2覆盖文件

来自分类Dev

Dropbox API v2使用python上传大型文件

来自分类Dev

如何从Dropbox Chooser v2获取POST数据?

来自分类Dev

DropNet与DropBox API v2的兼容性

来自分类Dev

Dropbox API v2获取图像/相册

来自分类Dev

使用 ObjectiveDropboxOfficial (Dropbox V2 API) 检测目录

来自分类Dev

Dropbox升级

来自分类Dev

Dropbox的AppArmor

来自分类Dev

只有 dropbox.com 无法在我的笔记本电脑上解析。我如何解决它?

来自分类Dev

错误:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception:在 Windows 10 上编译时出现 AAPT2 错误

来自分类Dev

致命错误:Aspose中未捕获的异常'com_exception'

来自分类Dev

DropboxUnlinkedException-如果您尚未在会话中设置访问令牌对,或者用户已撤消访问权限

来自分类Dev

移动文件时,Dropbox HTTP API v2会覆盖文件

来自分类Dev

我可以使用Dropbox V2 API中的文件ID搜索/获取文件吗?

Related 相关文章

  1. 1

    com.dropbox.client2.exception.DropboxUnlinkedException

  2. 2

    您应该使用以下方案拥有com.dropbox.client2.android.AuthActivity:XXXXXXXX

  3. 3

    --client = 2参数在Dropbox中有什么作用?

  4. 4

    Dropbox-Client不起作用

  5. 5

    将旧邮件从Gmail迁移到Dropbox / Sync.com

  6. 6

    Dropbox API v2-上传文件

  7. 7

    Dropbox OAuth 2动态返回URL

  8. 8

    Dropbox API v2-上传文件

  9. 9

    与 Dropbox API v2 离线同步

  10. 10

    使用Curl和Oauth 2将文件上传到DropBox的DropBox API PUT示例

  11. 11

    如何使用dropbox-api dropbox-js V2打开弹出窗口

  12. 12

    使用 Dropbox API V2 + Corodva 上传文件到 Dropbox

  13. 13

    com.ibm.websphere.management.exception.AdminException:

  14. 14

    com.ibatis.common.jdbc.exception.NestedSQLException:

  15. 15

    okhttp-Dropbox http API v2

  16. 16

    在Python中使用Dropbox API v2覆盖文件

  17. 17

    Dropbox API v2使用python上传大型文件

  18. 18

    如何从Dropbox Chooser v2获取POST数据?

  19. 19

    DropNet与DropBox API v2的兼容性

  20. 20

    Dropbox API v2获取图像/相册

  21. 21

    使用 ObjectiveDropboxOfficial (Dropbox V2 API) 检测目录

  22. 22

    Dropbox升级

  23. 23

    Dropbox的AppArmor

  24. 24

    只有 dropbox.com 无法在我的笔记本电脑上解析。我如何解决它?

  25. 25

    错误:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception:在 Windows 10 上编译时出现 AAPT2 错误

  26. 26

    致命错误:Aspose中未捕获的异常'com_exception'

  27. 27

    DropboxUnlinkedException-如果您尚未在会话中设置访问令牌对,或者用户已撤消访问权限

  28. 28

    移动文件时,Dropbox HTTP API v2会覆盖文件

  29. 29

    我可以使用Dropbox V2 API中的文件ID搜索/获取文件吗?

热门标签

归档