1
私はGoogleドライブを開いており、ファイルを選択できます。確認ボタンをクリックすると応答があり、InputStream
に電話してファイルを読み始めます。これは私のコードInputStream
を読んでいた。アプリケーションがdriveContent.InputStream.Length
に達したときGoogleドライブ:Xamarin - Android GetInputStream - コンテンツインスタンスごとに1回のみ呼び出すことができます
var pendingResult = driveFile.OpenAsync(GoogleApiClient, DriveFile.ModeReadOnly, this)
.ContinueWith((resultTask) =>
{
var driveContentResults = resultTask.Result;
var driveContent = driveContentResults.DriveContents;
if (_dialog != null && _dialog.IsShowing)
_dialog.Dismiss();
if (driveContentResults.Status.IsSuccess)
{
if (FileReadyCallback != null)
{
var length = driveContent.InputStream.Length;
//var data = new byte[length];
//driveContent.InputStream.Read(data, 0, data.Length);
//FileReadyCallback(this, data);
}
//var absolutePath = FileUtilities.SaveStreamToDownloadDirectory(driveContent.InputStream, Guid.NewGuid() + ".pdf");
//SendResultToCallingActivity(absolutePath);
}
});
、ブレークポイントはInputStream
が唯一のコンテンツのインスタンスごとに一度呼び出すことができることを私に示しました。コードでは、その行が入力ストリームの最初の呼び出しです。