这是两种不同的API,不建议将它们混合在一起。REST Api(
v2
和
v3
)使用
com.google.api.services.drive.Drive mGOOSvc =
new Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
GoogleAccountCredential.usingOAuth2(Context, Collections.singletonList(DriveScopes.DRIVE_FILE))
....
)
.build();
访问GooDrive服务,即调用以下方法:
mGOOSvc.files().get()...
mGOOSvc.files().list()....
mGOOSvc.files().insert()...
mGOOSvc.files().patch()...
mGOOSvc.files().update()...
mGOOSvc.getRequestFactory().buildGetRequest()...
使用您实例化的服务。
另一方面
GDAA
使用不同的构造:
com.google.android.gms.common.api.GoogleApiClient mGAC
= new GoogleApiClient.Builder(Context)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks( new GoogleApiClient.ConnectionCallbacks() {...})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {...})
....
.build();
创建
GoogleApiClient mGAC
用于访问GDAA,如下所示:
mGAC.connect() / disconnect()
Drive.DriveApi.getRootFolder(mGAC)...
Drive.DriveApi.getAppFolder(mGAC)...
Drive.DriveApi.getFolder(mGAC, ...)...
Drive.DriveApi.query(mGAC, ...)...
DriveFolder.createFile(mGAC, ..., ...)
...
正如我上面提到的,除非你知道这两个API的含义(GDAA是一个本地服务-请参阅
Drive Local Context
在里面
Lifecycle of a Drive file
here
,REST Api直接与网络对话)。
GitHub上提供了这两个API的两个示例,解决了相同的问题(构建和读取目录树)(
REST
)还有这里(
GDAA
). 这个
MainActivity
这两个类的方法基本相同,它分别调用包装类REST或GDAA的方法。
祝你好运