我正在尝试将box.net集成到我的Android应用程序中以进行云访问。我只包含了boxandroidlibraryv2.jar和BoxJavaLibraryV2.jar(通过在eclipse中构建源代码来获取)而不包括https://github.com/box/box-android-sdk-v2中的源代码。 。我需要示例代码来仅通过使用这些jar来验证用户。任何人都可以共享示例源代码。
答案 0 :(得分:0)
最简单的身份验证方法是使用SDK中包含的OAuthActivity。将其添加到您的清单中即可使用它。
// If you don't have a server redirect url, use this instead:
// Intent intent = createOAuthActivityIntent(context, clientId, clientSecret, false, "http://localhost");
Intent intent = OAuthActivity.createOAuthActivityIntent(this, clientId,
clientSecret);
startActivityForResult(intent);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_CANCELED) {
// Get the error message for why authentication failed.
String failMessage = data.getStringExtra(OAuthActivity.ERROR_MESSAGE);
// Implement your own logic to handle the error.
handleFail(failMessage);
} else {
// You will get an authenticated oath token object back upon success.
BoxAndroidOAuthData oauth = data.getParcelableExtra(OAuthActivity.BOX_CLIENT_OAUTH);
// If you don't want to supply a customized hub or parser, use null to fall back to defaults.
BoxAndroidClient client = new BoxAndroidClient(clientId, clientSecret, null, null, null);
client.authenticate(oauth);
youOwnMethod(client);
}
}
我们的sdk会在OAuth访问令牌过期时自动刷新。您需要在刷新后收听刷新事件并更新存储的令牌。
boxClient.addOAuthRefreshListener(OAuthRefreshListener listener) {
new OAuthRefreshListener() {
@Override
public void onRefresh(IAuthData newAuthData) {
BoxOAuthToken oauthObject = boxClient.getAuthData();
// TODO: save the auth data.
}
}
}
答案 1 :(得分:0)
可能你已经解决了这个问题,因为这个问题已经很久了。但只是为了更准确(我发现自己处于一个非常相似的问题)。
您不能在项目中使用boxandroidlibraryv2.jar,因为它有一些资源(用于进行身份验证,询问用户/密码)。