这些是2种不同的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();
用于访问GDAA像这样来创建GoogleApiClient mGAC
:
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的方法。
好运
非常感谢您的解释。 –
如果您决定使用Github示例进行游戏,您可以安全地剥离Accounr Manager(UT.AM),Account Picker和'email'来简化它。帐户选择将由服务处理。您的应用只是不知道您的用户选择了哪个帐户。 – seanpj