是否可以在后台连接到Drive API?

时间:2016-02-16 21:56:10

标签: android google-drive-android-api

我想在后台保存用户的数据,但我不明白如何在没有用户交互的情况下连接到Drive API。

从第一次连接后的理解

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstance);

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Drive.API)
            .addScope(Drive.SCOPE_FILE)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();
}

我想获得一个刷新令牌,稍后我将使用它来获取一个访问令牌,我将使用该令牌连接到API并保存用户的数据。使用Drive API for Android

看起来不太可行

如果有人指出我是怎么做的,我也会感激不尽!

1 个答案:

答案 0 :(得分:1)

要从后台服务实施将文件保存到云端硬盘,您需要启动一个活动,您将在其中处理权限活动的活动结果。

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
  if (resultCode == Activity.RESULT_OK) {
    // permission is given
    finish();
  } else {
    or show error
  }
}

要获取refresh token以允许长期访问,您的应用会请求授权以访问由范围标识的资源。您需要将prompt=consent参数添加到身份验证请求中。如果包含prompt=consent,则每次登录应用时都会显示同意屏幕。刷新令牌仅在授予应用程序权限时第一次返回。

基于此thread

  

refresh_token仅在用户的第一次授权时提供。后续授权(例如您在测试OAuth2集成时所使用的类型)将不会再次返回refresh_token。

然后,要使用刷新令牌生成访问令牌,您可以参考此question