首页 文章

使用google drive Api上传图片文件

提问于
浏览
1

尝试使用驱动API和Xamarin(C#)通过我的应用程序从谷歌硬盘上的用户手机(Android)上传图像文件(已存在) . 有几种解决方案可供上传,但它们都显示为上传新文件..例如

Google Drive API implementation Xamarin Android

Upload file into google drive folder using Xamarin.Android

@sushihangover给出的解决方案都创建了一个新的文本文件,然后通过v3 API上传 . 我也查看了API,但无法对其进行排序 .

1 回答

  • 1

    使用谷歌驱动器Api上传图像文件

    您可以使用以下代码将图片文件上传到Google Cloud 端硬盘:

    DriveClass.DriveApi.NewDriveContents(client).SetResultCallback(new System.Action<IDriveApiDriveContentsResult>((result)=> {
    
                //Create MetadataChangeSet
                MetadataChangeSet metadataChangeSet = new MetadataChangeSet.Builder()
                    .SetTitle("Test.jpg")
                    .SetMimeType("image/jpeg").Build();
    
                var contents = result.DriveContents;
    
                //push the bitmap data to DriveContents
                bitmapFromYourPicture.Compress(CompressFormat.Jpeg, 1, contents.OutputStream);
                IntentSender intentSender = DriveClass.DriveApi
                        .NewCreateFileActivityBuilder()
                        .SetInitialMetadata(metadataChangeSet)
                        .SetInitialDriveContents(contents)
                        .Build(client);
    
                StartIntentSenderForResult(intentSender, 2, null, 0, 0, 0);
            }));
    

    如果你通过使用意图选择图像图片,你可以像这样得到图片 Bitmap

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        if (requestCode == 0)
        {
            var uri = data.Data;
    
            System.IO.Stream image_stream = ContentResolver.OpenInputStream(uri);
            Bitmap getBitmap = BitmapFactory.DecodeStream(image_stream);
        }
    }
    

相关问题