有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android Dropbox API如何从SharedReference检索身份验证密钥

我在应用程序中使用Dropbox core Api。当用户在应用程序启动时授权应用程序时,会创建一个密钥和一个密钥,允许应用程序与他们的dropbox交互。我通过以下操作将这些密钥存储在SharedReference中:

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输出项目时,它们返回为--安卓。应用程序。SharedPreferencesImpl@41201188--安卓。应用程序。SharedPreferencesImpl@41201928--现在它和我储存的东西是一致的。我做错了什么


共 (1) 个答案

  1. # 1 楼答案

    如果要将这些令牌作为字符串存储在SharedReference中,则需要将它们作为字符串返回

    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;