¿Cómo puedo crear y cargar una hoja de cálculo de Google con la aplicación de Android?

He dedicado demasiado tiempo a esto, así que me gustaría preguntar al respecto. Quiero crear y subir una hoja de cálculo de Google con Android. Sé que debería usarAPI de unidad para hacer esto. Sé cómo crear un archivo usando esta API (incluso un archivo de Excel) pero cuandosetMimeType se establece enapplication / vnd.google-apps.spreadsheet Recibo un error en el dispositivo:Error al intentar crear el archivo.

    @Override
public void onConnected(Bundle connectionHint) {
    super.onConnected(connectionHint);
    // create new contents resource
    Drive.DriveApi.newDriveContents(getGoogleApiClient())
            .setResultCallback(driveContentsCallback);
}

final private ResultCallback<DriveContentsResult> driveContentsCallback = new
        ResultCallback<DriveContentsResult>() {
            @Override
            public void onResult(DriveContentsResult result) {
                if (!result.getStatus().isSuccess()) {
                    showMessage("Error while trying to create new file contents");
                    return;
                }
                final DriveContents driveContents = result.getDriveContents();

                // Perform I/O off the UI thread.
                new Thread() {
                    @Override
                    public void run() {
                        // write content to DriveContents
                        OutputStream outputStream = driveContents.getOutputStream();
                        Writer writer = new OutputStreamWriter(outputStream);
                        try {
                            writer.write("Hello World!");
                            writer.write("Hello World!");
                            writer.close();
                        } catch (IOException e) {
                            Log.e(TAG, e.getMessage());
                        }

                        MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
                                .setTitle("Orders")
                                .setMimeType("application/vnd.google-apps.spreadsheet")
                                .setStarred(true).build();



                        // create a file on root folder
                        Drive.DriveApi.getRootFolder(getGoogleApiClient())
                                .createFile(getGoogleApiClient(), changeSet, driveContents)
                                .setResultCallback(fileCallback);
                    }
                }.start();
            }
        };

final private ResultCallback<DriveFileResult> fileCallback = new
        ResultCallback<DriveFileResult>() {
            @Override
            public void onResult(DriveFileResult result) {
                if (!result.getStatus().isSuccess()) {
                    showMessage("Error while trying to create the file");
                    return;
                }
                showMessage("Created a file with content: " + result.getDriveFile().getDriveId());
                storeId(result.getDriveFile().getDriveId());
                kill_activity();
            }
        };v

Respuestas a la pregunta(2)

Su respuesta a la pregunta