2012-09-10 60 views
1

我正在使用Dropbox android sdk将Dropbox与我的应用程序集成,我想从我的应用程序中的dropbox注销。从官方文档和Dropbox论坛注销的唯一方法是在Dropbox会话中调用unlink()并清除您的访问令牌和秘密SharedPreferenceAndroid Dropbox sdk注销功能错误

mApi.getSession().unlink(); 
//clear dropbox accesstoken and secret keys from SharedPreference 
clearKeys(); 

那么上面的调用没有做任何事情。当我尝试登录后

AppKeyPair appKeyPair = new AppKeyPair(AppConstants.DROPBOX_API_KEY,AppConstants.DROPBOX_API_SECRET); 
AndroidAuthSession session; 
session    = new AndroidAuthSession(appKeyPair, ACCESS_TYPE); 

是没有得到显示登录界面,取而代之的是,这里的API要求访问到投寄箱文件夹(登录屏幕后通常会显示)用户权限的屏幕代替。有没有办法从Dropbox注销?

+1

同样的问题。你有没有找到解决方案? – tipycalFlow

+0

不幸的是,但它似乎是一个错误。我看到市面上有同样问题的其他应用程序 – Krishnabhadra

+0

感谢您的更新!那么必须以这种方式进行。 – tipycalFlow

回答

1

这里的问题是当应用程序达到onResume()函数。即使您已注销,dropbox api会要求浏览器登录,并用密钥进行响应。看来浏览器缓存了登录信息。尝试在呼叫注销功能时清除Web浏览器缓存。

+0

只有当浏览器用于登录网站时,它才能正常工作。如果用户在他的设备中安装了Dropbox应用程序,清除浏览器缓存将无济于事。此外,我无法让用户每次从Dropbox注销时都清除浏览器缓存我的应用程序.. – Krishnabhadra

+0

网络浏览器缓存无法清除 – tipycalFlow

0

因为unlink()调用纯粹是客户端工作,所以不等于将应用程序与用户帐户断开链接,您可以在“设置”页面下在Web上执行此操作。

下面是代码片断这里

@Override 
public boolean isLinked() { 
    return (oauth1AccessToken != null) || (oauth2AccessToken != null); 
} 

@Override 
public void unlink() { 
    oauth1AccessToken = null; 
    oauth2AccessToken = null; 
}