2013-02-19 30 views
2

我在我的应用程序中使用Dropbox核心Api。当用户在启动时授权应用程序时,会创建一个密钥和一个密钥,允许应用程序与其保管箱进行交互。我做这SharedPreferences保存了这些按键:Android Dropbox API - 如何从SharedPreferences检索授权密钥

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(ACCESS_KEY_NAME, key); 
    edit.putString(ACCESS_SECRET_NAME, secret); 
    edit.commit(); 
    Log.d("DbAuthLog", key); 
    Log.d("DbAuthLog", secret); 
} 

的关键和秘诀都显示在日志窗口jkhfdsfueyuefd和yde767eyshy(为当然的安全假键)。

现在,当我去取回他们的键,我这样做:

private AccessTokenPair getStoredKeys() { //Need to fix this and test 

    SharedPreferences accessKey = getSharedPreferences(ACCESS_KEY_NAME, 0); 
    SharedPreferences secretKey = getSharedPreferences(ACCESS_SECRET_NAME, 0); 
    System.out.println(accessKey + "--" + secretKey + "from storeKeys"); 
    return null; 

的问题是,当我输出getStoredKeys的项目,它们是作为--android.app.SharedPreferencesImpl @返回[email protected] - 它现在与我存储的内容相匹配。我在这里做错了什么?

回答

2

您在正确访问您的偏好设置。

SharedPreferences prefs = getSharedPreferences(ACCOUNT_PREFS_NAME, 0); 
String accessKey = prefs.getString(ACCESS_KEY_NAME); 
String secretKey = prefs.getString(ACCESS_SECRET_NAME); 
1

您正在将这些标记存储为SharedPreference中的字符串,您需要将它们还原为字符串。

private AccessTokenPair getStoredKeys() { //Need to fix this and test 
SharedPreferences prefs = getSharedPreferences(ACCOUNT_PREFS_NAME, 0); 
String accessKey = prefs.getString(ACCESS_KEY_NAME, ""); 
String secretKey = prefs.getString(ACCESS_SECRET_NAME, ""); 
System.out.println(accessKey + "--" + secretKey + "from storeKeys"); 
return null; 
+0

Geeze ......非常感谢你们!当我正在学习某些东西时,我讨厌做些愚蠢的事情。我应该知道这一点。 – 2013-02-19 17:44:42