Ton*_*Lin 2 java android google-api google-drive-api google-drive-android-api
我是Google Drive Android API的新手,我正在学习它.但我遇到的问题是我无法使用Google Drive Android API删除文件,但没有一个例子.anybood可以帮我解决这个问题吗?非常感谢.
更新(2015年4月)
GDAA终于拥有了自己的" 垃圾 "功能,使得答案在IRRELEVANT以下.
原始答案:
正如Cheryl上面提到的,您可以将这两个API结合起来.
以下代码片段摘自此处,展示了如何完成此操作:
首先,访问GoogleApiClient和... services.drive.Drive
GoogleApiClient _gac;
com.google.api.services.drive.Drive _drvSvc;
public void init(MainActivity ctx, String email){
// build GDAA GoogleApiClient
_gac = new GoogleApiClient.Builder(ctx).addApi(com.google.android.gms.drive.Drive.API)
.addScope(com.google.android.gms.drive.Drive.SCOPE_FILE).setAccountName(email)
.addConnectionCallbacks(ctx).addOnConnectionFailedListener(ctx).build();
// build RESTFul (DriveSDKv2) service to fall back to for DELETE
com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential crd =
GoogleAccountCredential
.usingOAuth2(ctx, Arrays.asList(com.google.api.services.drive.DriveScopes.DRIVE_FILE));
crd.setSelectedAccountName(email);
_drvSvc = new com.google.api.services.drive.Drive.Builder(
AndroidHttp.newCompatibleTransport(), new GsonFactory(), crd).build();
}
Run Code Online (Sandbox Code Playgroud)
其次,在GDAA的DriveId上实现RESTful API调用:
public void trash(DriveId dId) {
try {
String fileID = dId.getResourceId();
if (fileID != null)
_drvSvc.files().trash(fileID).execute();
} catch (Exception e) {}
}
public void delete(DriveId dId) {
try {
String fileID = dId.getResourceId();
if (fileID != null)
_drvSvc.files().delete(fileID).execute();
} catch (Exception e) {}
}
Run Code Online (Sandbox Code Playgroud)
...瞧,你要删除你的文件.像往常一样,并非没有问题.
首先,如果您在创建文件后立即尝试删除文件,则getResourceId()将落在其正面,返回null.与这里的问题无关,我要提出一个问题.
第二,它很奇怪!并且它不应该保留在代码中,而是通过GDAA实现TRASH和DELETE功能.
| 归档时间: |
|
| 查看次数: |
5682 次 |
| 最近记录: |