Простая запись данных в Google лист - PullRequest
0 голосов
/ 25 ноября 2018

Я действительно новичок в разработке Android.Я хотел бы иметь приложение со встроенным считывателем QR-кода, которое добавит прочитанные данные в листы Google.Единственная проблема в том, что я не знаю, как отправить данные в электронные таблицы.Я могу войти в Google, получить QR-код, но не могу найти хороший учебник по Google Sheet Api v4, поэтому я обращаюсь к вам.(Приложение зависает, когда я вызываю намерение)

У меня есть следующий код:

package com.qr_sheets.qr_sheets;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;


import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.sheets.v4.Sheets;
import com.google.api.services.sheets.v4.model.AppendValuesResponse;
import com.google.api.services.sheets.v4.model.ValueRange;

import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Arrays;

public class WriteData extends AppCompatActivity {

    String spreadsheetId = "1VV13imEvHIjf8bbooXooWfaXEi3mVkes-bGvbes0tr8";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_write_data);
        String range = "A:C"; // TODO: Update placeholder value.

        // How the input data should be interpreted.
        String valueInputOption = ""; // TODO: Update placeholder value.

        // How the input data should be inserted.
        String insertDataOption = ""; // TODO: Update placeholder value.

        Object a1 = new Object();
        a1 = "TEST Row 1 Column A";
        Object b1 = new Object();
        b1 = "TEST Row 1 Column B";

        Object a2 = new Object();
        a2 = "TEST Row 2 Column A";
        Object b2 = new Object();
        b2 = "TEST Row 2 Column B";

        // TODO: Assign values to desired fields of `requestBody`:
        ValueRange requestBody = new ValueRange();
        requestBody.setValues(Arrays.asList(Arrays.asList(a1, b1), Arrays.asList(a2, b2)));
        Sheets sheetsService = null;
        try {
            sheetsService = createSheetsService();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (GeneralSecurityException e) {
            e.printStackTrace();
        }
        Sheets.Spreadsheets.Values.Append request = null;
        try {
            request = sheetsService.spreadsheets().values().append(spreadsheetId, range, requestBody);
        } catch (IOException e) {
            e.printStackTrace();
        }
        request.setValueInputOption(valueInputOption);
        request.setInsertDataOption(insertDataOption);

        try {
            AppendValuesResponse response = request.execute();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Sheets createSheetsService() throws IOException, GeneralSecurityException {
        HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
        JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();

        // TODO: Change placeholder below to generate authentication credentials. See
        // https://developers.google.com/sheets/quickstart/java#step_3_set_up_the_sample
        //
        // Authorize using one of the following scopes:
        //   "https://www.googleapis.com/auth/drive"
        //   "https://www.googleapis.com/auth/drive.file"
        //   "https://www.googleapis.com/auth/spreadsheets"
        GoogleCredential credential = null;

        return new Sheets.Builder(httpTransport, jsonFactory, credential).setApplicationName("Google-SheetsSample/0.1").build();
    }
}

Я нашел много вопросов о подобных случаях здесь, но не нашел ту же ситуациюи решение, так что если оно где-то здесь, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...