跨服务和活动的共享首选项出错

时间:2014-10-20 10:19:45

标签: android dropbox-api

我正在使用Dropbox Core API SDK开发Android应用程序。我通过活动A对用户进行身份验证,并使用共享首选项将令牌存储在方法M中。我有一个服务S,负责上传到Dropbox并上传,S需要访问存储在共享首选项中的令牌。

问题在于,每当我尝试访问A中的M来访问令牌时,我都会得到一个空指针异常。

活动A

    public void loadAuth(AndroidAuthSession session) {
            SharedPreferences prefs = getSharedPreferences(ACCOUNT_PREFS_NAME, 0);
            String key = prefs.getString(ACCESS_KEY_NAME, null);
            String secret = prefs.getString(ACCESS_SECRET_NAME, null);
            if (key == null || secret == null || key.length() == 0 || secret.length() == 0) return;
            session.setOAuth2AccessToken(secret);

        }



public void storeAuth(AndroidAuthSession session) {
        String oauth2AccessToken = session.getOAuth2AccessToken();
        if (oauth2AccessToken != null) {
            SharedPreferences prefs = getSharedPreferences(ACCOUNT_PREFS_NAME, 0);
            Editor edit = prefs.edit();
            edit.putString(ACCESS_KEY_NAME, "oauth2:");
            edit.putString(ACCESS_SECRET_NAME, oauth2AccessToken);
            edit.commit();
            return;
        }
    }





public AndroidAuthSession buildSession() {
        AppKeyPair appKeyPair = new AppKeyPair(APP_KEY, APP_SECRET);

        AndroidAuthSession session = new AndroidAuthSession(appKeyPair);
        loadAuth(session);
        return session;
    }

服务S

公共类UploadService扩展了IntentService {

private static final String TAG = "UploadService";
DropboxAPI<AndroidAuthSession> mApi;
DropboxAuth dbAuth=new DropboxAuth();    
@Override
protected void onHandleIntent(Intent arg0) {
        AndroidAuthSession session = dbAuth.buildSession();
        mApi = new DropboxAPI<AndroidAuthSession>(session);}}

我在AndroidAuthSession session = dbAuth.buildSession()获得Null指针异常; 请帮助。

0 个答案:

没有答案