公式 API を使用して Google ドライブにアップロードするアプリを作成しましたが、これは完全に機能します。ただし、アップロードをキャンセルする方法が見つかりません。私は ASyncTask で実行しています。これまでのところ、ドライブ オブジェクト、ファイル パス、トークン、およびその他のいくつかの変数をなしにしようとしました。また、トークンを無効にしようとしましたが、これはキャッシュからトークンを削除するだけで、サーバー側で実際に無効にするわけではないようです。ASyncTask でキャンセルを呼び出しましたが、アップロードが開始された後にキャンセルされた場合、それを停止する方法はないようです。
私の問題は、ユーザーが 100 MB のファイルのアップロードを開始した場合、インターネット接続をオンまたはオフにする以外にそれをキャンセルする方法がないことです。これは実用的ではありません。これは私のアップロードコードです:
java.io.File jFile = new java.io.File(path); //Does not get file just info
File body = setBody(jFile, mimeType);
try
{
java.io.File mediaFile = new java.io.File(path);
InputStreamContent mediaContent =
new InputStreamContent(mimeType,
new BufferedInputStream(new FileInputStream(mediaFile)));
mediaContent.setLength(mediaFile.length());
request = drive.files().insert(body, mediaContent);
request.getMediaHttpUploader().setProgressListener(new CustomProgressListener());
File file = request.execute();
確かにアップロードをキャンセルする方法はありますか?