0

最初のエラーは、Driveid からリソース ID を取得しようとしているときに発生します。

DriveFile dfile= Drive.DriveApi.getFile(mGoogleApiClient,DriveId.decodeFromString(driveId));                                            
Log.e(TAG,"Driveid>>>>" + driveId);                                             
String resourceID= dfile.getDriveId().getResourceId().toString();

リソース ID を取得し、Google ドライブからアイテムを削除しようとするたびに。

com.google.api.services.drive.Drive service;

service.files().delete(resourceID).execute();

ここで Logcat エラー:

ここに画像の説明を入力

Google ドライブからファイルを削除するための標準的な解決策を教えてください。

4

2 に答える 2

2

For newly created files, the resourceId will not be populated right away. It will be populated once the file is committed to the server. You should check if it is null before using it.

于 2014-06-25T16:01:13.417 に答える
0

'trash' の場合、 GDAAREST Apiを混在させる必要はもうありません。GooPlaySvcs リリース 7.0 (2015 年 3 月) 以降、GDAA には ResourceId を必要としない「trash()」メソッドがあり、その遅延/存在に関連するタイミングの問題から保護されています。

簡単なデモとして、ResourceId を必要としない GDAA の「ゴミ箱」ラッパーを次に示します。その上、ネットワーク(wifi)のオンライン/オフライン状態を気にする必要はありません。

private static GoogleApiClient mGAC;
...  
static void trash(DriveId dId) {
  if (mGAC != null && mGAC.isConnected() && dId != null) {
    DriveResource driveResource;
    if (dId.getResourceType() == DriveId.RESOURCE_TYPE_FOLDER) {
      driveResource = Drive.DriveApi.getFolder(mGAC, dId);
    } else {
      driveResource = Drive.DriveApi.getFile(mGAC, dId);
    }
    if (driveResource != null) {
      driveResource.trash(mGAC).setResultCallback(new ResultCallback<Status>() {
        @Override
        public void onResult(Status status) {
          // bingo, trashed successfully !!!   
        }
      });
    }
  }
}

幸運を

于 2015-08-29T14:08:16.733 に答える