Diskuze: Android - Google drive - čtení a psaní do tabulky (Android studio)
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

					Člen				
			
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, co přesně Ti není jasné?
Tady je to pěkně vysvětlené: https://developers.google.com/…tart/android
Read: https://developers.google.com/…ples/reading
Write: https://developers.google.com/…ples/writing
						Nechápu například jak implementovat tento typ kódu do aplikace...
{
  "range": "Sheet1!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    ["Item", "Cost", "Stocked", "Ship Date"],
    ["Wheel", "$20.50", "4", "3/1/2016"],
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "30/20/2016"],
    ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
  ],
}
{
  "spreadsheetId": spreadsheetId,
  "updatedRange": "Sheet1!A1:D5",
  "updatedRows": 5,
  "updatedColumns": 4,
  "updatedCells": 20,
}
					Toto je JSON formát dat, který posíláš. Mimochodem, trošku je v tom
zmatek.
Toto posíláš:
{
  "range": "Sheet1!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    ["Item", "Cost", "Stocked", "Ship Date"],
    ["Wheel", "$20.50", "4", "3/1/2016"],
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "30/20/2016"],
    ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
  ],
}
A toto dostaneš jako result:
{
  "spreadsheetId": spreadsheetId,
  "updatedRange": "Sheet1!A1:D5",
  "updatedRows": 5,
  "updatedColumns": 4,
  "updatedCells": 20,
}
Asi bych nejdříve začal s jednoduchým získání dat. To se jednoduše dělá přes GET požadavek. Až ti bude fungovat vytáhnutí dat, tak bych zkoušel nějaký zápis.
Pro vytáhnutí dat zadáš tuto adresu:
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}
kde místo spreadsheetId vložíš ID své tabulky, kterou ideálně
nastavíš tak, aby nepotřebovala ničí login.
range je rozsah hodnot ve formátu: [A1:B2]
Trošku jsem googlil a našel zajímavou věc.
Na této adrese:
https://developers.google.com/apis-explorer/?hl=en_US#p/sheets/v4/
si můžeš vyzkoušet, právě uvedené příkazy v praxi
Dále si musíš v google developer konzoli aktivovat google sheet api aby jsi vůbec mohl přistupovat k těm tabulkám...
To čtení jsem vyřešil takovým způsobem, že z google drive se stáhne JSON té tabulky, a potom se v aplikaci json překope do listview s výce kolonkami.
Stále ale nechápu jak použít ve své aplikaci ty příkazy pro to zapsání...(myslel bych si, že to bude něco podobného jak čtení - nejdříve se z textu vytvoří json soubor, a ten se potom updatuje na google drive..)
No, stejně, jako se dotazujes na získání dat metodou GET, tak pro vkládání dat se použije metoda POST. Přičemž tam vložíš data v JSON formatu, který je předepsaný na těch stránkách.
Btw. pouzivej tlačítko odpovědět, aby se mi ukázala notifikace a já reagoval dřív...
Mám problém spíše v tom, že tomu zas tolik nerozumím... program pro
čtení jsem si stáhl zde
http://www.telerik.com/…urce-android (dole na stánce je
odkaz na celý kód na githubu)
a nalezl jsem tuto část kódu:
private String downloadUrl(String urlString) throws IOException {
        InputStream is = null;
        try {
            URL url = new URL(urlString);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(10000 /* milliseconds */);
            conn.setConnectTimeout(15000 /* milliseconds */);
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            // Starts the query
            conn.connect();
            int responseCode = conn.getResponseCode();
            is = conn.getInputStream();
            String contentAsString = convertStreamToString(is);
            return contentAsString;
        } finally {
            if (is != null) {
                is.close();
            }
        }
    }
ale už nevím, jak to překopat na to, aby to odesílalo... jediné co tak...
conn.setRequestMethod("POST");
					Zobrazeno 9 zpráv z 9.