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.