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.


Zobrazeno 9 zpráv z 9.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
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.