upload image files using google drive Api

情到浓时终转凉″ 提交于 2019-12-24 09:37:30

问题


Trying to upload an image file (already existing) from a user's phone (Android) on his google drive via my app using drive API and Xamarin (C#). There are several solutions to upload but they all are showing to upload a new file.. for example

Google Drive API implementation Xamarin Android

Upload file into google drive folder using Xamarin.Android

both the solution given by @sushihangover create a new text file and then upload it via v3 API. I looked into the API as well but couldn't sort it out..


回答1:


upload image files using google drive Api

You could use the following codes to upload the image file to Google Drive :

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);
        }));

If you choose the image picture by using intent you could get the picture Bitmap like this :

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);
    }
}


来源:https://stackoverflow.com/questions/48268063/upload-image-files-using-google-drive-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!